如何为该查询编写正确的PARTITION BY子句实现分组统计排序
正确SQL写法:按Item分组统计各DC对应的Club数量
原始数据
item club dc 1 2 100 1 3 100 1 4 200 1 5 200 1 6 200 1 7 300 2 3 100 2 4 200 2 5 200 2 6 200
需求说明
按item分组,统计每个item下各dc对应的club数量,最终结果需按item分组、club_count降序排序,预期结果如下:
item dc club_count 1 200 3 1 100 2 1 300 1 2 200 3 2 100 1
问题分析
你尝试的语句select item,dc, count(dc) over(partition by dc) from table未得到正确结果,原因是窗口函数仅按dc分区,没有关联item,无法实现按item分组统计的需求,且此处无需使用窗口函数,直接通过分组聚合即可达成目标。
正确SQL语句
SELECT item, dc, COUNT(club) AS club_count FROM your_table_name GROUP BY item, dc ORDER BY item, club_count DESC;
语句说明
GROUP BY item, dc:同时按item和dc进行分组,确保统计的是每个item下不同dc对应的club数量COUNT(club):统计每组内的club记录数,得到对应dc的club数量ORDER BY item, club_count DESC:先按item排序,同一item下按club_count降序排列,匹配预期结果的排序要求
内容的提问来源于stack exchange,提问作者PAMPA ROY
相关产品推荐
相关产品推荐

