流沙团
关于django中的annotate使用
2022-9-6 流沙团

当在建立模型的时候


ordering = [‘username’]



在使用values和annotate的时候,values在annotate前面相当于分组


group by后面会增加username排序字段 。



users = User.objects.values(‘type’).annotate(Count(‘num’))


SELECT user.type, COUNT(user.num) AS num__count FROM user GROUP BY user.type, user.username



加order_by()去掉排序后,恢复正常,变成



SELECT user.type, COUNT(user.num) AS num__count FROM user GROUP BY user.type



当如果 ordering = [‘id’] 直接会导致分组失效,这里需要注意 ordering 对 annotate 的影响, 是个小坑

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容