damoshayu.cn,yy6080新视觉影院,精品国产污污免费网站入口,国产精品一区二区久久精品无码

rank函數(rank函數不連續(xù)單元格排名)

前沿拓展:

rank函數

排名次是對固定范圍排序,所以需要用絕對引用固定范圍,不然下拉公式會導致范科:RANK函數)


1、窗口函數之rank()使用場景:

在mysql中進行分組(group by)后,還需要組內排名,例如各班級成績排名、市場各不同小組業(yè)績排名、不同地區(qū)水果售價排名等。

2、什么是窗口函數?

窗口函數,也叫OLAP函數(Online **lytical Processing),即聯機分析處理,可以對數據庫數據進行實時分析處理。

3、語法規(guī)則:select 窗口函數名稱 over (partition by 分組的列名,order by 排序的列名)as '你想取的名字'

數據庫中表demo的數據如下:

rank函數(rank函數不連續(xù)單元格排名)

表數據參考

4、實際查詢語句:

特別注意:窗口函數是對where和group by子句處理后的結果進行**作,因此按照SQL語句的運行順序,窗口函數一般放在select子句中,切記!

SELECT
id,
NAME AS '姓名',
score AS '分數',
class AS '班級',
rank() over ( PARTITION BY class ORDER BY score DESC ) AS '班級名次'
FROM
backup_c**.`demo`5、查詢結果:

查詢結果第一是按照班級class進行分組,分組后組內按照分數score進行desc降序排名排名,如下圖。

rank函數(rank函數不連續(xù)單元格排名)

查詢結果

特別注意:如果分數相同,排名會有跳級,假設上面數據同組張三的分數也為90分,那么他將和姓名為“安一”的并列為第一名,如下圖。

rank函數(rank函數不連續(xù)單元格排名)

同組同分情況

6、結束:

窗口函數當然不止這一個函數,還有很多其他函數,例如還有聚合函數【max(),min()】,取值函數【first_value(),nth_value()】等,那么,如何解決上面“跳級”問題呢?后面繼續(xù)分享。

拓展知識:

原創(chuàng)文章,作者:九賢生活小編,如若轉載,請注明出處:http://www.drmqd.com.cn/31765.html