Py学习  »  问与答

Group by 如何按分组成员数量排序?

superdjangor • 8 年前 • 3765 次点击  

例如表staff:

name,job
张五,程序员
张三,工程师
李四,工程师
李六,程序员
赵三,经理
张八,程序员

现在希望按职位分组,并且按组员数倒序排列输出每条记录, 即:

张五,程序员
李六,程序员
张八,程序员
张三,工程师
李四,工程师
赵三,经理

我仔细阅读了相关文档,没有找到合适的方法.诸如:

staff.objects.values('job').annotate(Count('job'))

这个是不行的,它并不是逐条按记录输出,而是输出一个字典对象.

直接staff.objects.order_by('job')也是不一定能成功的, 因为它无法保证按组员数倒序排列. 它有可能是这样输出:

张三,工程师
李四,工程师
张五,程序员
李六,程序员
张八,程序员
赵三,经理

有何办法吗? 实在不行用SQL命令也可以, 但我SQL命令也没有找到解决办法.

补充: 希望在数据库层面解决这个问题. 我目前的解法办法是读到内存里面交给python做,但表大了就占内存了.

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1324
 
3765 次点击  
文章 [ 3 ]  |  最新文章 8 年前