Author: adrian
Date: 2012-01-13 13:57:30 -0800 (Fri, 13 Jan 2012)
New Revision: 17371
Modified:
django/trunk/docs/topics/db/aggregation.txt
Log:
Started a 'Cheat sheet' section in aggregation docs because I desperately need
this
Modified: django/trunk/docs/topics/db/aggregation.txt
===================================================================
--- django/trunk/docs/topics/db/aggregation.txt 2012-01-12 22:17:22 UTC (rev
17370)
+++ django/trunk/docs/topics/db/aggregation.txt 2012-01-13 21:57:30 UTC (rev
17371)
@@ -41,7 +41,43 @@
name = models.CharField(max_length=300)
books = models.ManyToManyField(Book)
+Cheat sheet
+===========
+In a hurry? Here's how to do common aggregate queries, assuming the models
above::
+
+ # Total number of books.
+ >>> Book.objects.count()
+ 2452
+
+ # Total number of books with publisher=BaloneyPress
+ >>> Book.objects.filter(publisher__name='BaloneyPress').count()
+ 73
+
+ # Average price across all books.
+ >>> from django.db.models import Avg
+ >>> Book.objects.all().aggregate(Avg('price'))
+ {'price__avg': 34.35}
+
+ # Max price across all books.
+ >>> from django.db.models import Max
+ >>> Book.objects.all().aggregate(Max('price'))
+ {'price__max': Decimal('81.20')}
+
+ # Each publisher, each with a count of books as a "num_books" attribute.
+ >>> from django.db.models import Count
+ >>> pubs = Publisher.objects.annotate(num_books=Count('book'))
+ >>> pubs
+ [<Publisher BaloneyPress>, <Publisher SalamiPress>, ...]
+ >>> pubs[0].num_books
+ 73
+
+ # The top 5 publishers, in order by number of books.
+ >>> from django.db.models import Count
+ >>> pubs =
Publisher.objects.annotate(num_books=Count('book')).order_by('-num_books')[:5]
+ >>> pubs[0].num_books
+ 1323
+
Generating aggregates over a QuerySet
=====================================
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.