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

mysql5.7使用變量進行分組排名并實現(xiàn)篩選

 更新時間:2024年05月01日 09:12:16   作者:好大的月亮  
這篇文章主要介紹了mysql5.7使用變量進行分組排名并實現(xiàn)篩選方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

概述

mysql到8.0之后就有rank和desc_rank函數(shù)了,但是在5.7沒這玩意,想實現(xiàn)一個分組排名得靠自己手擼了.

分組排名

student表就id/姓名/分數(shù)/班級幾個字段,加上class表就id/name兩個字段。

需求是查詢每個班級分數(shù)排名前三的所有人(不是3個人是所有人)

SELECT
@last_class := st.class,
CASE
		
	WHEN
		st.class = @last_class THEN
		CASE
				
				WHEN @score = st.score THEN
				@rank 
				WHEN ( @score := st.score ) IS NOT NULL THEN
				@rank := @rank + 1 
			END 
	ELSE @rank := 1 
END rank,
st.* 
FROM
	student st,(
	SELECT
		@score := NULL,
		@rank := 0,
		@last_class := NULL 
	) a 
ORDER BY
	st.class,
	st.score desc

結(jié)果

篩選

#EXPLAIN
SELECT
	a.id AS studentId,
	NAME,
	a.class,
	a.score 
FROM
	(
	SELECT
	@last_class := st.class,
	CASE
			
		WHEN
			st.class = @last_class THEN
				CASE
					
					WHEN @score = st.score THEN
					@rank 
					WHEN ( @score := st.score ) IS NOT NULL THEN
					@rank := @rank + 1 
					
				END 
		ELSE @rank := 1 
	END rank,
	st.* 
FROM
	student st,(
	SELECT
		@score := NULL,
		@rank := 0,
		@last_class := NULL 
	) aa 
ORDER BY
	st.class,
	st.score DESC 
	) a
	
	where a.rank <= 3

結(jié)果

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談MySQL中的自增主鍵用完了怎么辦

    淺談MySQL中的自增主鍵用完了怎么辦

    這篇文章主要介紹了淺談MySQL中的自增主鍵用完了怎么辦,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • MySQL分區(qū)表和分桶表的操作詳解

    MySQL分區(qū)表和分桶表的操作詳解

    這篇文章主要介紹了MySQL分區(qū)表和分桶表的操作,分區(qū)表和分桶表都是數(shù)據(jù)庫中的表,用于對數(shù)據(jù)進行分區(qū)或分桶存儲,以提高數(shù)據(jù)庫的性能和查詢效率,需要詳細了解可以參考下文
    2023-05-05
  • MySQL 使用自定義變量進行查詢優(yōu)化

    MySQL 使用自定義變量進行查詢優(yōu)化

    MySQL自定義變量估計很少人有用到,但是如果用好了也是可以輔助進行性能優(yōu)化的。需要注意的是變量是基于連接會話的,而且可能存在一些意外的情況,需要小心使用。本篇介紹如何利用自定義變量進行查詢優(yōu)化,提高效率
    2021-05-05
  • 一篇文章徹底搞定MySQL中的JSON類型(效率非常快)

    一篇文章徹底搞定MySQL中的JSON類型(效率非???

    這篇文章主要介紹了關(guān)于MySQL中JSON類型的相關(guān)資料,MySQL?5.7.8引入JSON數(shù)據(jù)類型,提供原生支持,相比字符類型,具有優(yōu)勢,JSON數(shù)據(jù)類型對數(shù)據(jù)進行預(yù)處理,自動將布爾類型轉(zhuǎn)換為小寫,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-12-12
  • 從MySQL 5.5遷移到Mariadb 10.1.14所遇到的問題

    從MySQL 5.5遷移到Mariadb 10.1.14所遇到的問題

    這篇文章主要介紹了從MySQL 5.5遷移到Mariadb 10.1.14所遇到的問題的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • MySQL表添加某一列和刪除某一列的方法

    MySQL表添加某一列和刪除某一列的方法

    MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是一種開源的軟件,由瑞典的MySQL?AB公司開發(fā)的,這篇文章主要介紹了關(guān)于MySQL表添加某一列和刪除某一列的sql語句,需要的朋友可以參考下
    2023-06-06
  • JMeter壓測Mysql教程分享

    JMeter壓測Mysql教程分享

    文章介紹了如何使用JMeter進行數(shù)據(jù)庫壓力測試的步驟,包括安裝JMeter、下載并配置MySQL JDBC驅(qū)動、設(shè)置測試計劃、添加JDBC連接配置元件、添加JDBC請求取樣器以及可選的監(jiān)聽器配置,最后,文章指導(dǎo)如何運行測試并分析結(jié)果,以評估數(shù)據(jù)庫在不同壓力下的性能表現(xiàn)
    2024-11-11
  • mysql 5.7.18 MSI安裝圖文教程

    mysql 5.7.18 MSI安裝圖文教程

    這篇文章主要為大家詳細介紹了mysql 5.7.18 MSI安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL數(shù)據(jù)庫高危權(quán)限回收的實現(xiàn)

    MySQL數(shù)據(jù)庫高危權(quán)限回收的實現(xiàn)

    本文介紹MySQL數(shù)據(jù)庫的基本操作指令,包括查看和切換數(shù)據(jù)庫等,詳細講解了如何統(tǒng)計環(huán)境中的用戶及權(quán)限,并提供了權(quán)限回收的方法,包括回收高危權(quán)限和重新授權(quán)必要權(quán)限的過程,感興趣的可以了解一下
    2026-01-01
  • MySQL修改root密碼的4種方法(小結(jié))

    MySQL修改root密碼的4種方法(小結(jié))

    這篇文章主要介紹了MySQL修改root密碼的4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論

沛县| 阿拉善左旗| 博罗县| 高州市| 达孜县| 桦甸市| 林芝县| 托里县| 尉犁县| 图片| 津南区| 沙雅县| 苗栗市| 商洛市| 巴青县| 揭东县| 通许县| 安吉县| 将乐县| 兴化市| 台中市| 资源县| 额济纳旗| 正定县| 安塞县| 泸州市| 临泉县| 大港区| 石门县| 体育| 武宣县| 苏州市| 太白县| 桐庐县| 四川省| 天气| 威远县| 平遥县| 双桥区| 新巴尔虎右旗| 青岛市|