成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

總結(jié)幾種MySQL中常見的排名問題

瀏覽:217日期:2023-10-12 08:09:16

前言:

在某些應(yīng)用場景中,我們經(jīng)常會遇到一些排名的問題,比如按成績或年齡排名。排名也有多種排名方式,如直接排名、分組排名,排名有間隔或排名無間隔等等,這篇文章將總結(jié)幾種MySQL中常見的排名問題。

創(chuàng)建測試表

create table scores_tb ( id int auto_increment primary key, xuehao int not null, score int not null) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into scores_tb (xuehao,score) values (1001,89),(1002,99),(1003,96),(1004,96),(1005,92),(1006,90),(1007,90),(1008,94);# 查看下插入的數(shù)據(jù)mysql> select * from scores_tb;+----+--------+-------+| id | xuehao | score |+----+--------+-------+| 1 | 1001 | 89 || 2 | 1002 | 99 || 3 | 1003 | 96 || 4 | 1004 | 96 || 5 | 1005 | 92 || 6 | 1006 | 90 || 7 | 1007 | 90 || 8 | 1008 | 94 |+----+--------+-------+

1.普通排名

按分數(shù)高低直接排名,從1開始,往下排,類似于row number。下面我們給出查詢語句及排名結(jié)果。

# 查詢語句SELECT xuehao, score, @curRank := @curRank + 1 AS rankFROM scores_tb, (SELECT @curRank := 0) rORDER BY score desc;# 排序結(jié)果+--------+-------+------+| xuehao | score | rank |+--------+-------+------+| 1002 | 99 | 1 || 1003 | 96 | 2 || 1004 | 96 | 3 || 1008 | 94 | 4 || 1005 | 92 | 5 || 1006 | 90 | 6 || 1007 | 90 | 7 || 1001 | 89 | 8 |+--------+-------+------+

上述查詢語句中,我們申明了一個變量 @curRank ,并將此變量初始化為0,查得一行將此變量加一,并以此作為排名。我們看到這類排名是沒間隔的并且有些分數(shù)相同但排名不同。

2.分數(shù)相同,名次相同,排名無間隔

# 查詢語句SELECT xuehao, score, CASEWHEN @prevRank = score THEN @curRankWHEN @prevRank := score THEN @curRank := @curRank + 1END AS rankFROM scores_tb, (SELECT @curRank :=0, @prevRank := NULL) rORDER BY score desc;# 排名結(jié)果+--------+-------+------+| xuehao | score | rank |+--------+-------+------+| 1002 | 99 | 1 || 1003 | 96 | 2 || 1004 | 96 | 2 || 1008 | 94 | 3 || 1005 | 92 | 4 || 1006 | 90 | 5 || 1007 | 90 | 5 || 1001 | 89 | 6 |+--------+-------+------+

3.并列排名,排名有間隔

另外一種排名方式是相同的值排名相同,相同值的下一個名次應(yīng)該是跳躍整數(shù)值,即排名有間隔。

# 查詢語句SELECT xuehao, score, rank FROM(SELECT xuehao, score,@curRank := IF(@prevRank = score, @curRank, @incRank) AS rank, @incRank := @incRank + 1, @prevRank := scoreFROM scores_tb, (SELECT @curRank :=0, @prevRank := NULL, @incRank := 1) rORDER BY score desc) s;# 排名結(jié)果+--------+-------+------+| xuehao | score | rank |+--------+-------+------+| 1002 | 99 | 1 || 1003 | 96 | 2 || 1004 | 96 | 2 || 1008 | 94 | 4 || 1005 | 92 | 5 || 1006 | 90 | 6 || 1007 | 90 | 6 || 1001 | 89 | 8 |+--------+-------+------+

上面介紹了三種排名方式,實現(xiàn)起來還是比較復(fù)雜的。好在MySQL8.0增加了窗口函數(shù),使用內(nèi)置函數(shù)可以輕松實現(xiàn)上述排名。

MySQL8.0 利用窗口函數(shù)實現(xiàn)排名

MySQL8.0中可以利用 ROW_NUMBER(),DENSE_RANK(),RANK() 三個窗口函數(shù)實現(xiàn)上述三種排名,需要注意的一點是as后的別名,千萬不要與前面的函數(shù)名重名,否則會報錯,下面給出這三種函數(shù)實現(xiàn)排名的案例:

# 三條語句對于上面三種排名select xuehao,score, ROW_NUMBER() OVER(order by score desc) as row_r from scores_tb;select xuehao,score, DENSE_RANK() OVER(order by score desc) as dense_r from scores_tb;select xuehao,score, RANK() over(order by score desc) as r from scores_tb;# 一條語句也可以查詢出不同排名SELECT xuehao,score, ROW_NUMBER() OVER w AS ’row_r’, DENSE_RANK() OVER w AS ’dense_r’, RANK() OVER w AS ’r’FROM `scores_tb`WINDOW w AS (ORDER BY `score` desc);# 排名結(jié)果+--------+-------+-------+---------+---+| xuehao | score | row_r | dense_r | r |+--------+-------+-------+---------+---+| 1002 | 99 | 1 | 1 | 1 || 1003 | 96 | 2 | 2 | 2 || 1004 | 96 | 3 | 2 | 2 || 1008 | 94 | 4 | 3 | 4 || 1005 | 92 | 5 | 4 | 5 || 1006 | 90 | 6 | 5 | 6 || 1007 | 90 | 7 | 5 | 6 || 1001 | 89 | 8 | 6 | 8 |+--------+-------+-------+---------+---+

總結(jié):

本文給出三種不同場景下實現(xiàn)統(tǒng)計排名的SQL,可以根據(jù)不同業(yè)務(wù)需求選取合適的排名方案。對比MySQL8.0,發(fā)現(xiàn)利用窗口函數(shù)可以更輕松實現(xiàn)排名,其實業(yè)務(wù)需求遠遠比我們舉的示例要復(fù)雜許多,用SQL實現(xiàn)此類業(yè)務(wù)需求還是需要慢慢積累的。

以上就是總結(jié)幾種MySQL中常見的排名問題的詳細內(nèi)容,更多關(guān)于MySQL 排名的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲天堂偷拍| 在线观看av一区| 一色屋精品视频在线观看网站| 色婷婷综合久色| 午夜在线精品| 欧美日韩综合在线| 亚洲综合在线视频| 欧美伊人影院| 日韩欧美一二三区| 久久av老司机精品网站导航| 久久在线视频| 亚洲国产精品黑人久久久| 亚洲国产国产亚洲一二三| 精品国产3级a| 国产精品伊人色| 91精品国产综合久久国产大片| 久久99久久久欧美国产| 欧美亚男人的天堂| 717成人午夜免费福利电影| 午夜伦欧美伦电影理论片| 国产成人高清在线| 欧美精品一级二级| 国产伦精品一区二区三区免费迷| 亚洲色图在线视频| 99精品欧美一区二区三区小说| 欧美va在线播放| 九九国产精品视频| aa级大片欧美三级| 国产欧美一区二区精品久导航| 大桥未久av一区二区三区中文| 麻豆精品视频在线观看| 久久一区亚洲| 亚洲午夜久久久| 亚洲国产日韩一区二区| 狠狠色噜噜狠狠狠狠色吗综合| 久久精品夜夜夜夜久久| 欧美日韩国产不卡在线看| 久久在线观看免费| 欧美伊人久久| 国产午夜精品福利| 成人精品小蝌蚪| 日韩三级免费观看| 日本欧美一区二区三区乱码| 国产精品久久久久久模特 | 久久精品国产精品亚洲精品| 一本久久综合亚洲鲁鲁五月天| 亚洲精品videosex极品| 欧美日韩国产美女| 日本va欧美va精品| 日本久久电影网| 国产精品一区二区视频| 国产一区二区精品久久91| 欧美丝袜自拍制服另类| 黑人巨大精品欧美一区| 亚洲黄色影院| 91国偷自产一区二区三区观看 | 亚洲精品福利视频网站| 亚洲欧美一区在线| 国产精品国产三级国产aⅴ中文 | 一区二区在线电影| 精品国产乱码久久久久久久| 欧美一区二区三区在| 91小宝寻花一区二区三区| 亚洲图片另类小说| 欧洲色大大久久| 91啪在线观看| 亚洲成人av一区二区| 91.com在线观看| 欧美日本不卡| 亚洲一区日韩精品中文字幕| 久久亚洲国产精品日日av夜夜| 天堂一区二区在线| 欧美亚洲另类激情小说| 国产麻豆91精品| wwwwxxxxx欧美| 欧美激情无毛| 亚洲乱码精品一二三四区日韩在线| 亚洲精品一区二区三区樱花| 亚洲欧美激情小说另类| 香蕉av777xxx色综合一区| 日本视频在线一区| 欧美日韩的一区二区| 国产91精品一区二区麻豆网站| 欧美精品一区二区三区蜜桃视频| 欧美在线首页| 亚洲女性喷水在线观看一区| 美玉足脚交一区二区三区图片| 秋霞影院一区二区| 欧美二区在线观看| 波多野结衣在线aⅴ中文字幕不卡| 亚洲美女在线一区| 亚洲精品一区二| 天天亚洲美女在线视频| 欧美日韩精品是欧美日韩精品| a在线欧美一区| 国产精品国产a级| 亚洲一区二区免费看| 老汉av免费一区二区三区| 制服丝袜一区二区三区| av一本久道久久综合久久鬼色| 国产精品美女久久久久久久久久久| 亚洲免费播放| 免费看精品久久片| 欧美成人女星排行榜| 国产一区美女| 免费不卡在线视频| 久久亚洲一区二区三区四区| 99成人免费视频| 免费久久精品视频| 久久综合成人精品亚洲另类欧美 | 在线精品一区| 亚洲福中文字幕伊人影院| 欧美日本乱大交xxxxx| 欧美极品一区| 日本女人一区二区三区| 久久综合狠狠综合久久综合88 | 国产精品嫩草99av在线| 韩国av一区二区三区四区| 国产亚洲一区字幕| 久久久久91| 成人在线综合网站| 有码一区二区三区| 日韩写真欧美这视频| 国产欧美日韩亚洲| 从欧美一区二区三区| 一区二区三区中文字幕在线观看| 欧美色综合网站| 在线观看一区视频| 国产在线一区观看| 一区二区三区日韩精品视频| 日韩欧美一区二区久久婷婷| 亚洲深爱激情| jvid福利写真一区二区三区| 午夜激情综合网| 久久久久国产精品免费免费搜索| 国产日韩综合| 成人午夜免费av| 亚洲第一激情av| 久久精品一区二区三区av| 久久综合伊人| 欧美午夜一区| 国产一区二区视频在线播放| 亚洲精品videosex极品| 精品国产免费久久| 日本道色综合久久| 伊人久久亚洲美女图片| 国产乱理伦片在线观看夜一区| 亚洲欧美另类综合偷拍| 91精品国产乱码久久蜜臀| 精品成人免费| 国产原创一区二区三区| 亚洲精品视频在线看| 2022国产精品视频| 日本丶国产丶欧美色综合| 欧美精品一区三区在线观看| 国产又黄又大久久| 亚洲国产美国国产综合一区二区| 国产亚洲女人久久久久毛片| 欧美军同video69gay| 国产精品一区二区a| 欧美精品色网| 国产超碰在线一区| 免费人成网站在线观看欧美高清| 最新欧美精品一区二区三区| 欧美一区亚洲| 成人激情黄色小说| 成人免费视频caoporn| 国产黄人亚洲片| 国产风韵犹存在线视精品| 国内精品免费**视频| 精品一区二区三区在线播放| 久久国产精品第一页| 激情综合网激情| 国产精品99久久久| 国产69精品久久99不卡| 国产aⅴ精品一区二区三区色成熟| 国产精品资源在线观看| 国产福利一区在线观看| 国产不卡免费视频| 不卡的av在线播放| av在线这里只有精品| 欧美呦呦网站| 好吊视频一区二区三区四区| 亚洲高清二区| 国产亚洲一区在线| 美女久久一区| 在线精品视频一区二区| 欧美群妇大交群的观看方式| 在线播放亚洲一区| 欧美va在线播放| 日本一区二区三区久久久久久久久不 | 欧美制服丝袜第一页| 精品1区2区3区| 日韩三级视频中文字幕| 久久免费的精品国产v∧| 国产精品视频一二三| 一区二区三区波多野结衣在线观看| 五月综合激情日本mⅴ| 激情小说欧美图片| eeuss国产一区二区三区|