hql和oracle都支持分组排序方法:
- row_number() over(partition by XXX order by XXXX)
- rank() over(partition by XXX order by XXXX)
- dense_rank() over(partition by XXX order by XXXX)
可以轻松实现分组排序去top值,但是mysql却不支持,那么mysql是如何实现分组排序的呢?
先准备案例数据:
首先我们先实现一下分组排序,我们要按省进行分组,在组内让实现GDP倒序排列:
如果我们要去实现取每个省gdp排名靠前的2个市操作sql如下: