我有一个包含用户 ID 及其分数的表。
eg. userid rating
123 1
123 2
456 1
789 5
123 1
我想要实现的是这样的汇总表:
rating 1 : 32 ratings by 20 ppl
2 : 37 ratings by 15 ppl
etc..
ppl 的数量应该是给出该评级的不同用户。
我已经了解了 Django 模型聚合方法并知道如何使用计数等。 但我无法想出可以实现这一目标的方法。
当然,我可以检索整个集合并使用 python 中的 for 循环进行计数,但这效率不高。
感谢您的帮助。
最佳答案
您正在寻找的sql如下:
SELECT rating, COUNT(rating) AS rc, COUNT(DISTINCT userid) FROM rating_tbl GROUP BY rating ORDER BY rc DESC;
你还没有提供模型,实际上在 Django ORM 中表示 SQL 并不容易,IMO。最简单的方法就是直接写,引用the doc .
关于python - Django 模型按 2 个以上元素分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279701/