'Returns the dictionary with the values of the existing aggregations.'

def get_aggregation(self, using):

    if (not self.aggregate_select):
        return {}
    if (self.group_by is not None):
        from django.db.models.sql.subqueries import AggregateQuery
        query = AggregateQuery(self.model)
        obj = self.clone()
        for (alias, aggregate) in self.aggregate_select.items():
            if aggregate.is_summary:
                query.aggregate_select[alias] = aggregate
                del obj.aggregate_select[alias]
        try:
            query.add_subquery(obj, using)
        except EmptyResultSet:
            return dict(((alias, None) for alias in query.aggregate_select))
    else:
        query = self
        self.select = []
        self.default_cols = False
        self.extra = {}
        self.remove_inherited_models()
    query.clear_ordering(True)
    query.clear_limits()
    query.select_related = False
    query.related_select_cols = []
    query.related_select_fields = []
    result = query.get_compiler(using).execute_sql(SINGLE)
    if (result is None):
        result = [None for q in query.aggregate_select.items()]
    return dict([(alias, self.resolve_aggregate(val, aggregate, connection=connections[using])) for ((alias, aggregate), val) in zip(query.aggregate_select.items(), result)])
