django聚合和过滤器

时间:2016-12-04 06:31:31

标签: python sql django

我要将这个sql转换为django命令:

SELECT
  core.id,
  core.title,
  core.age_id,
  core.cat_id,
  max(date) AS max_date
FROM core
WHERE core.state = 'ABC'
GROUP BY cat_id, age_id

我尝试了这个,但效果不正确:

Core.objects.values('id', 'title', 'age_id', 'cat_id').filter(state='ABC').annotate(
            max_date=Max('date')).aggregate(Count('age_id', 'cat_id'))

1 个答案:

答案 0 :(得分:1)

您必须使用values()执行此操作,但限制要按

分组的字段
Core.objects.values('age_id', 'cat_id').filter(state='ABC').annotate(Max('date'), Count('age_id', 'cat_id'))