综合查询
select province,city,people,rank() over (order by people desc) rank,
dense_rank() over (order by people desc) dense_rank,
row_number() over(order by people desc) row_number
from pcp
group by province,city,people;
省份 城市 人数 rank dense rownumber
浙江 杭州 300 1 1 1
江苏 苏州 299 2 2 2
江苏 南京 270 3 3 3
江苏 某市 200 4 4 4
浙江 温州 200 4 4 5
浙江 宁波 150 6 5 6
江苏 一市 100 7 6 7
浙江 嘉兴 100 7 6 8
综合查询的时候group by 可以去掉吗?可以的,不过对结果的排序有稍微影响,如果人数相同的时候
分组统计查询
select province,city,peoplerank() over (partition by province order by people desc) rank,
dense_rank() over (partition by province order by people desc) dense_rank,
row_number() over(partition by province order by people desc) row_number
from pcp
group by province,city,people;
省份 城市 人数 rank dense rownumber
江苏 苏州 299 1 1 1
江苏 南京 270 2 2 2
江苏 某市 200 3 3 3
江苏 一市 100 4 4 4
浙江 杭州 300 1 1 1
浙江 温州 200 2 2 2
浙江 宁波 150 3 3 3
浙江 嘉兴 100 4 4 4
添加:分组排序的时候over内的order By 可以使用聚合函数来排序