很可能已经回答了这个问题,但是我真的没有找到解决方法:
我有这样的东西:
使用此查询:
SELECT
deparment,
device,
count(*) as times
FROM
routines
GROUP BY
device,
deparment
ORDER BY
times DESC;
The result would come like this:
3 "A" 7337
2 "A" 5875
1 "A" 3242
3 "B" 1937
2 "B" 1866
3 "C" 1609
1 "B" 1580
3 "D" 1493
但是我想按每种设备排序,所以输出应该像这样:
3 "A" 7337
2 "A" 5875
1 "A" 3242
3 "B" 1937
2 "B" 1866
1 "B" 1580
3 "C" 1609
3 "D" 1493
因此,计数字段应从多到少排序,但必须按每个设备分组
答案 0 :(得分:0)
我认为您需要两个排序键:
ORDER BY device, times DESC;
如果您还想对设备进行排序,那么最大的设备是第一,您可以使用窗口函数:
ORDER BY sum(times) over (partition by device) DESC, device, times DESC