MySQL 被吐槽最多的特性之一就是缺少 rank() 函數,當需要在查詢當中實現排名時,必須手寫 @ 變量。但是從 8.0 開始,MySQL 新增了一個叫窗口函數的概念,它可以用來實現若干新的查詢方式。
窗口函數有點像是 SUM()、COUNT() 那樣的集合函數,但它並不會將多行查詢結果合並為一行,而是將結果放回多行當中。也就是說,窗口函數是不需要 GROUP BY 的。
示例:
select *,rank() over w as 'rank' from k_dict window w as (order by dictValue)