DjangoのORMを使用したときの集計関数の使用方法
SQL内で集計をおこなう際に、SQLであれば、「MAX」や「MIN」などと合わせて、「group by」を指定することがある。
ORM使用時は、「group by」を明示的に指定することはないため、少し書き方が違う。
下記のようなモデルがあったとする。
from django.db import models
class test_dogs(models.Model):
name = models.CharField(max_length=200);
age = models.IntegerField();
gender_type = models.CharField(max_length=1); # 1:male,2:female年齢値のMAXを取りたいとき。
test_dogs.objects.all().annotate(max_id=models.Max('age'));性別ごとに年齢値のMAXを取りたいとき。
test_dogs.objects.values('gender_type').annotate(max_id=models.Max('age'));

