使用mysql 8.0 的rank()函数实现排名查询

MySQL 被吐槽最多的特性之一就是缺少 rank() 函数,当需要在查询当中实现排名时,必须手写 @ 变量。但是从 8.0 开始,MySQL 新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。
窗口函数有点像是 SUM()、COUNT() 那样的集合函数,但它并不会将多行查询结果合并为一行,而是将结果放回多行当中。也就是说,窗口函数是不需要 GROUP BY 的。

示例:

select *,rank() over w as 'rank' from k_dict window w as (order by dictValue)

 

posted @ 2021-05-06 14:18  李小加  阅读(1130)  评论(0编辑  收藏  举报