MariaDB 窗口函数row_number、rank介绍
生活随笔
收集整理的這篇文章主要介紹了
MariaDB 窗口函数row_number、rank介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MariaDB 窗口函數(shù)row_number、rank介紹
窗口函數(shù)概述
MariaDB 自10.2.2即支持窗口函數(shù),這里介紹下部分這類函數(shù)的功能和區(qū)別,詳見下文的案例說明。1 ROW_NUMBER 按照分區(qū)生成的唯一序號 2 RANK 按照分區(qū)生成的排名,有重名的排名相同,不重名的按照記錄序號進(jìn)行排名? 3 DENSE_RANK 按照分區(qū)生成的排名,有重復(fù)的接重復(fù)的繼續(xù)排名 4 SUM 即按照分區(qū)的列求和 5 COUNT 即按照分區(qū)的列求數(shù) 6 MAX ?? ?即按照分區(qū)的列求最大值 7 MIN ?? ?即按照分區(qū)的列求最小值 8 AVG ?? ?即按照分區(qū)的列求平均值 9 VAR_POP ?? ?即按照分區(qū)的列求方差 10 STD ?? ?即按照分區(qū)的列求標(biāo)準(zhǔn)差,非SQL標(biāo)準(zhǔn)函數(shù) 11 STDDEV_POP ?? ?即按照分區(qū)的列求標(biāo)準(zhǔn)差 12 VAR_SAMP ?? ?即按照分區(qū)的列求樣本方差 13 STDDEV_SAMP ?? ?即按照分區(qū)的列求樣本標(biāo)準(zhǔn)差 14 PERCENT_RANK ?? ?所在(rank排名-1)/(總分區(qū)數(shù)-1) 15 CUME_DIST ?? ?所在row序號 / 總行號代碼部分
CREATE TABLE score(course VARCHAR(10), score int, name varchar(10));INSERT INTO score VALUES ('數(shù)學(xué)', 60, '張三'),('數(shù)學(xué)', 60, '李四'),('數(shù)學(xué)', 70, '王二'),('數(shù)學(xué)', 55, '趙錢'),('英語', 60, '張三'),('英語', 70, '李四'),('語文', 83, '張三'),('語文', 92, '李四');SELECTcourse, score, name,ROW_NUMBER() OVER (PARTITION BY course ORDER BY score DESC) AS row_num,#按照分區(qū)生成的唯一序號RANK() OVER (PARTITION BY course ORDER BY score DESC) AS rank,#按照分區(qū)生成的排名,有重名的按照記錄序號進(jìn)行排名 DENSE_RANK() OVER (PARTITION BY course ORDER BY score DESC) AS dense_rank,#按照分區(qū)生成的排名,有重復(fù)的接重復(fù)的繼續(xù)排名SUM(score) OVER (PARTITION BY course) AS sum_score, #即按照分區(qū)的列求和COUNT(score) OVER (PARTITION BY course) AS cnt_score,#即按照分區(qū)的列求數(shù)MAX(score) OVER (PARTITION BY course) AS max_score,#即按照分區(qū)的列求最大值MIN(score) OVER (PARTITION BY course) AS min_score,#即按照分區(qū)的列求最小值A(chǔ)VG(score) OVER (PARTITION BY course) AS avg_score,#即按照分區(qū)的列求平均值VAR_POP(score) OVER (PARTITION BY course) AS VAR_POP_score,#即按照分區(qū)的列求方差STD(score) OVER (PARTITION BY course) AS std_score,#即按照分區(qū)的列求標(biāo)準(zhǔn)差,非SQL標(biāo)準(zhǔn)函數(shù)STDDEV_POP(score) OVER (PARTITION BY course) AS STDDEV_POP_score,#即按照分區(qū)的列求標(biāo)準(zhǔn)差VAR_SAMP(score) OVER (PARTITION BY course) AS VAR_SAMP_score,#即按照分區(qū)的列求樣本方差STDDEV_SAMP(score) OVER (PARTITION BY course) AS STDDEV_SAMP_score,#即按照分區(qū)的列求樣本標(biāo)準(zhǔn)差percent_rank() over (PARTITION BY course order by score DESC) as pct_rank,#所在(rank排名-1)/(總分區(qū)數(shù)-1)cume_dist() over (PARTITION BY course order by score DESC) as cume_dist # 所在row序號 / 總行號 FROM score -- ORDER BY course, score DESC;驗(yàn)證結(jié)果
course score name row_num rank dense_rank sum_score cnt_score max_score min_score avg_score VAR_POP_score std_score STDDEV_POP_score VAR_SAMP_score STDDEV_SAMP_score pct_rank cume_dist 數(shù)學(xué) 70 王二 1 1 1 245 4 70 55 61.2500 29.6875 5.4486 5.4486 39.5833 6.2915 0 0.25 數(shù)學(xué) 60 李四 2 2 2 245 4 70 55 61.2500 29.6875 5.4486 5.4486 39.5833 6.2915 0.3333333333 0.75 數(shù)學(xué) 60 張三 3 2 2 245 4 70 55 61.2500 29.6875 5.4486 5.4486 39.5833 6.2915 0.3333333333 0.75 數(shù)學(xué) 55 趙錢 4 4 3 245 4 70 55 61.2500 29.6875 5.4486 5.4486 39.5833 6.2915 1 1 英語 70 李四 1 1 1 130 2 70 60 65.0000 25 5 5 50 7.0711 0 0.5 英語 60 張三 2 2 2 130 2 70 60 65.0000 25 5 5 50 7.0711 1 1 語文 92 李四 1 1 1 175 2 92 83 87.5000 20.25 4.5 4.5 40.5 6.364 0 0.5 語文 83 張三 2 2 2 175 2 92 83 87.5000 20.25 4.5 4.5 40.5 6.364 1 1補(bǔ)充說明
方差計(jì)算公式
樣本方差計(jì)算公式
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的MariaDB 窗口函数row_number、rank介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特斯拉股东名单有哪些 腾讯控股是其中
- 下一篇: BeautifulSoup 返回网页标签