sql中如何对省中的市进行排序 二次分区?

题目如下,如何对对每个省中的市进行uv排序?
想要的结果市:

uv
广东深圳4000
广东广州3000
广东x2000
类似这个样子的表结构

img

我使用的是HQL语言:解决这个问题非常简单

  1. 将uv_tbl join money_tbl on pron
  2. 使用开窗函数将相同省份的表放到一个窗口中,然后根据uv进行排名,再来个RANK()函数直接附带上排名,完美解决,基本伪HQL编写(我意思一下,可别照抄,只是表达思想)如下所示
    SELECT *,RANK() OVER(PARTITION BY t1.prov ORDER BY t1.uv DESC) FROM (uv_tbl join money_tbl)t1
    即可完成

其他SQL个人的解决方案也有partition这种函数吧...