什么是MySQL的over函數(shù)
MySQL的over函數(shù)是一種分析函數(shù),它允許你在查詢結(jié)果集中執(zhí)行聚合函數(shù)并返回一個(gè)類似于分組的結(jié)果集。可以基于實(shí)時(shí)視圖計(jì)算聚合函數(shù)的值。
哪個(gè)版本的MySQL支持over函數(shù)?
MySQL 8.0.2版本開始引入了窗口函數(shù),包括over函數(shù)、row_number函數(shù)、rank函數(shù)等等。因此,只有MySQL 8.0.2及以上版本支持over函數(shù)。
MySQL的over函數(shù)語法
over函數(shù)的語法如下:
OVER([PARTITION BY expr,...][ORDER BY {ASC|DESC}, ...][frame_specification])
其中,PARTITION BY 子句將結(jié)果集劃分為不同的分區(qū),ORDER BY 子句控制分區(qū)的排序,frame_specification 子句用于定義窗口的邊界。
over函數(shù)示例
假設(shè)有一張學(xué)生成績表,包括學(xué)生姓名和成績兩列,我們想要查詢每個(gè)學(xué)生的成績和該分?jǐn)?shù)在班級中所處的排名,可以使用over函數(shù):
SELECT name, score, RANK() OVER(ORDER BY score DESC) AS ranking FROM score_table;
以上語句返回的結(jié)果將類似于如下表格:
name | score | ranking |
---|---|---|
張三 | 90 | 1 |
李四 | 85 | 2 |
王五 | 80 | 3 |
上述結(jié)果表格表示張三的成績最高,排名第一,李四成績第二等。
下一篇純css繪制