最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql教程分組排名實(shí)現(xiàn)示例詳解

 更新時(shí)間:2021年10月26日 16:48:32   作者:數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)之美  
這篇文章主要為大家介紹了Mysql數(shù)據(jù)庫分組排名實(shí)現(xiàn)的示例詳解教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

1.數(shù)據(jù)源

在這里插入圖片描述

2.數(shù)據(jù)整體排名

1)普通排名

從1開始,按照順序一次往下排(相同的值也是不同的排名)。

set @rank =0;
select 
	city ,
	score, 
	@rank := @rank+1 rank 
from cs 
order by score desc;

結(jié)果如下:

在這里插入圖片描述

2)并列排名

相同的值是相同的排名(但是不留空位)。

set @rank=0,@price=null;
select cs.* ,
 case when @price = score then @rank 
 when @price := score then @rank := @rank+1 end rank  
 from cs order by score desc;
 -- 當(dāng)查詢的score 值 = @price時(shí),輸出@rank,
 -- 當(dāng)不等時(shí),將score值賦給@price ,并輸出@rank := @rank+1
 
-- 或者
set @rank=0,@price=null;
select 
	a.city,a.score,a.rank 
from 
(select cs.*,
	@rank := if(@p=score,@rank,@rank+1) rank,
	@p := score
from cs 
order by score desc) a;

結(jié)果如下:

在這里插入圖片描述

3)并列排名

相同的值是相同的排名(但是留空位)。

set @rank=0,@price=null, @z=1;
select 
	a.city,a.score,a.rank 
from 
(select 
	cs.*,
	@rank := if(@p=score,@rank,@z) rank,
	@p := score,@z :=@z+1
from cs 
order by score desc) a;

結(jié)果如下:

在這里插入圖片描述

3.數(shù)據(jù)分組后組內(nèi)排名

1)分組普通排名

從1開始,按照順序一次往下排(相同的值也是不同的排名)。

set @rank=0,@c=null;
select 
	cs.city,cs.score,
	@rank := if(@c = city,@rank+1,1) rank,
	@c := city
from cs 
order by cs.city,cs.score;

結(jié)果如下:

在這里插入圖片描述

2)分組后并列排名

組內(nèi)相同數(shù)值排名相同,不占空位。

set @rank=0,@c=null,@s=null;
select 
	cs.city,cs.score,
	@rank := if(@c=city,if(@s=score,@rank,@rank+1),1) rank ,
	@c := city,
	@s :=score 
from cs 
order by cs.city,cs.score;

結(jié)果如下:

在這里插入圖片描述

3)分組后并列排名

組內(nèi)相同數(shù)值排名相同,需要占空位。

set @rank=0,@c=null,@s=null;
select 
	cs.city,cs.score,
	@rank := if(@c=city,if(@s=score,@rank,@rank+1),1) rank ,
	@c := city,
	@s :=score 
from cs 
order by cs.city,cs.score;

結(jié)果如下:

在這里插入圖片描述

4.分組后取各組的前兩名

① 方法一:按照分組排名的三種方式,然后限定排名的值

set @rank=0,@z=0,@c=null,@s=null;
select a.city,a.score,a.rank from 
(select 
	cs.city city,cs.score score,
	@z := if(@c=city,@z+1,1),
	@rank := if(@c=city,if(@s=score,@rank,@z),1) rank,
	@c := city,
	@s :=score 
from cs 
order by cs.city,cs.score desc) a
where a.rank<=2;

結(jié)果如下:

在這里插入圖片描述

② 內(nèi)部查詢

SELECT * FROM cs c
WHERE (
    SELECT count(*) FROM cs
    WHERE c.city=cs.city AND c.score<cs.score )<2
ORDER BY city,score DESC;

結(jié)果如下:

在這里插入圖片描述

上述代碼的執(zhí)行原理如下圖:

在這里插入圖片描述

以上就是Mysql教程分組排名實(shí)現(xiàn)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Mysql分組排名的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mysql分頁時(shí)offset過大的Sql優(yōu)化經(jīng)驗(yàn)分享

    mysql分頁時(shí)offset過大的Sql優(yōu)化經(jīng)驗(yàn)分享

    mysql分頁是我們在開發(fā)經(jīng)常遇到的一個(gè)功能,最近在實(shí)現(xiàn)該功能的時(shí)候遇到一個(gè)問題,所以這篇文章主要給大家介紹了關(guān)于mysql分頁時(shí)offset過大的Sql優(yōu)化經(jīng)驗(yàn),文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起看看吧。
    2017-08-08
  • 深入講解數(shù)據(jù)庫中Decimal類型的使用以及實(shí)現(xiàn)方法

    深入講解數(shù)據(jù)庫中Decimal類型的使用以及實(shí)現(xiàn)方法

    MySQL?DECIMAL數(shù)據(jù)類型用于在數(shù)據(jù)庫中存儲(chǔ)精確的數(shù)值,我們經(jīng)常將DECIMAL數(shù)據(jù)類型用于保留準(zhǔn)確精確度的列,例如會(huì)計(jì)系統(tǒng)中的貨幣數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫中Decimal類型的使用以及實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • MySQL安全輸入密碼的一些操作介紹

    MySQL安全輸入密碼的一些操作介紹

    這篇文章主要介紹了MySQL安全輸入密碼的一些操作,示例基于Linux操作系統(tǒng),需要的朋友可以參考下
    2015-07-07
  • 一文帶你了解MySQL中的子查詢

    一文帶你了解MySQL中的子查詢

    子查詢指一個(gè)查詢語句嵌套在另一個(gè)查詢語句內(nèi)部的查詢,這個(gè)特性從MySQL 4.1開始引入,SQL中子查詢的使用大大增強(qiáng)了SELECT 查詢的能力,本文帶大家詳細(xì)了解MySQL中的子查詢,需要的朋友可以參考下
    2023-06-06
  • Windows?本地安裝?Mysql8.0圖文教程

    Windows?本地安裝?Mysql8.0圖文教程

    本文介紹了如何在Windows本地安裝Mysql8.0。從下載Mysql8.0安裝包,運(yùn)行安裝程序,配置初始設(shè)置到啟動(dòng)Mysql服務(wù)等詳細(xì)步驟進(jìn)行了講解。
    2023-04-04
  • MySQL刪除數(shù)據(jù)1093錯(cuò)誤

    MySQL刪除數(shù)據(jù)1093錯(cuò)誤

    在進(jìn)行更新和刪除操作的時(shí)候,條件語句里面有子查詢語句,此時(shí)會(huì)報(bào)1093錯(cuò)誤,本文就來介紹一下1093錯(cuò)誤的解決,感興趣的可以了解一下
    2024-02-02
  • Mysql下載安裝、部署與圖形化詳細(xì)操作教程

    Mysql下載安裝、部署與圖形化詳細(xì)操作教程

    這篇文章主要為大家詳細(xì)介紹了Mysql下載安裝、部署與圖形化詳細(xì)操作教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 詳解記錄MySQL中l(wèi)ower_case_table_names的坑

    詳解記錄MySQL中l(wèi)ower_case_table_names的坑

    這篇文章主要介紹了詳解記錄MySQL中l(wèi)ower_case_table_names的坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MySQL中UNION語句用法詳解與示例

    MySQL中UNION語句用法詳解與示例

    這篇文章主要給大家介紹了關(guān)于MySQL中UNION語句用法的相關(guān)資料,實(shí)際業(yè)務(wù)中有時(shí)候需要把滿足多種獨(dú)立條件的結(jié)果集整合到一起,就可以使用UNOIN聯(lián)合查詢,需要的朋友可以參考下
    2023-08-08
  • Mysql查詢或?qū)С鼋Y(jié)果添加序號(hào)字段實(shí)現(xiàn)方法

    Mysql查詢或?qū)С鼋Y(jié)果添加序號(hào)字段實(shí)現(xiàn)方法

    這篇文章主要介紹了Mysql查詢或?qū)С鼋Y(jié)果添加序號(hào)字段實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評(píng)論

阿克| 冕宁县| 上栗县| 襄樊市| 新安县| 晋江市| 抚松县| 思南县| 巩留县| 济源市| 密云县| 琼海市| 方山县| 义乌市| 荃湾区| 九江市| 监利县| 赤水市| 芜湖县| 大埔县| 武夷山市| 敖汉旗| 大同市| 桂林市| 理塘县| 肇东市| 仁怀市| 北辰区| 连平县| 忻城县| 阿坝| 洪湖市| 临西县| 乐亭县| 拜泉县| 黄大仙区| 大荔县| 湘乡市| 原平市| 黑水县| 方山县|