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

mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)

 更新時(shí)間:2023年08月11日 16:04:31   作者:Xu_jesse  
這篇文章主要介紹了mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql分組后獲取每個(gè)組的第一條數(shù)據(jù)

已知:subject表(主題表),主題表為樹(shù)形表

path字段,使用分隔符###,將主題編碼從一級(jí)到本級(jí)主題編碼,拼接起來(lái),便于查詢主題下子主題數(shù)據(jù)。

現(xiàn)在,需要根據(jù)path排序,聚合查詢一級(jí)主題的名稱和條數(shù)。

直接上結(jié)果:

兩種寫(xiě)法:

一:內(nèi)層distinct

select tt.name as subjectName,path,count(*) as countNum from ?(select **distinct t.table_id_**, t.SUBJECT_ID_, s.name_ as name,path_,SUBSTRING_INDEX(path_,'###',1) as path from model_table t ?join hdgp_standard_subject s on t.SUBJECT_ID_ = s.id_ where t.IS_DELETE_ = 0 and !isnull(t.SUBJECT_ID_) and t.VERSION_TYPE_ = 'formal' order by s.path_ ?) tt group by tt.path ;

二:內(nèi)層group

select tt.name as subjectName,path,count(*) as countNum from ?(select t.SUBJECT_ID_, s.name_ as name,path_,SUBSTRING_INDEX(path_,'###',1) as path from model_table t ?join hdgp_standard_subject s on t.SUBJECT_ID_ = s.id_ where t.IS_DELETE_ = 0 and !isnull(t.SUBJECT_ID_) and t.VERSION_TYPE_ = 'formal' **group by t.table_id_** order by s.path_ ?) tt group by tt.path ;

解釋一下:

直接查詢是查不出想要的結(jié)果的,需要嵌套子查詢。但是只嵌套只查詢也是有問(wèn)題的,內(nèi)層循環(huán)也需要進(jìn)行過(guò)濾一下,可以使用distinct或者group ,再聯(lián)合order by 進(jìn)行排序,才能獲取想要的結(jié)果。

這樣寫(xiě),發(fā)現(xiàn)一個(gè)問(wèn)題,就是如果只有子主題的話,就查不出來(lái)一級(jí)主題了,改進(jìn)如下:(多關(guān)聯(lián)一遍,這樣子查詢都省了)

SELECT
? ? ss.NAME_ AS subjectName,
? ? count(*) AS countNum
FROM
? ? model_table t
? ? ? ? JOIN hdgp_standard_subject s ON t.SUBJECT_ID_ = s.id_
? ? ? ? JOIN hdgp_standard_subject ss ON SUBSTRING_INDEX( s.path_, '###', 1 ) = ss.CODE_
WHERE
? ? t.IS_DELETE_ = 0
? AND ! isnull( t.SUBJECT_ID_ )
? AND t.VERSION_TYPE_ = 'formal'
GROUP BY
? ? ss.code_

mysql獲取每組的第二條記錄

-- rank 第n次重復(fù), last_patient表中某一重復(fù)字段名稱
SELECT
 t.id,t.patient_id,t.patient_name
FROM (
	select 
		id,patient_id,patient_name,
	  if(@last_patient = a.patient_id,@rank := @rank+1,@rank := 1) AS "rank", -- 判斷 當(dāng)前patient_id與@last_patient是否相等,不相等rank為1,相等時(shí)rank加1,
		@last_patient := a.patient_id
	FROM lis_data_collection a,(SELECT @rank:=0,@last_patient:="") r -- 聲明兩個(gè)變量@rnak及@last_patient,并初始化
	ORDER BY a.id asc
) t 
where rank= 2
ORDER BY id ASC

總結(jié)

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

相關(guān)文章

  • Mysql 相鄰兩行記錄某列的差值方法

    Mysql 相鄰兩行記錄某列的差值方法

    今天小編就為大家分享一篇Mysql 相鄰兩行記錄某列的差值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • MYSQL 5.6 從庫(kù)復(fù)制的部署和監(jiān)控的實(shí)現(xiàn)

    MYSQL 5.6 從庫(kù)復(fù)制的部署和監(jiān)控的實(shí)現(xiàn)

    這篇文章主要介紹了MYSQL 5.6 從庫(kù)復(fù)制的部署和監(jiān)控的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • mysql datetime 默認(rèn)值的設(shè)置實(shí)現(xiàn)

    mysql datetime 默認(rèn)值的設(shè)置實(shí)現(xiàn)

    在MySQL中,DATETIME類型用于存儲(chǔ)包含日期和時(shí)間部分的值,設(shè)置默認(rèn)值的方式因 MySQL 版本而異,下面就來(lái)介紹一下,感興趣的可以了解一下
    2025-08-08
  • mysql如何刪除數(shù)據(jù)表和關(guān)聯(lián)的數(shù)據(jù)表刪除詳情

    mysql如何刪除數(shù)據(jù)表和關(guān)聯(lián)的數(shù)據(jù)表刪除詳情

    這篇文章主要介紹了mysql如何刪除數(shù)據(jù)表和關(guān)聯(lián)的數(shù)據(jù)表刪除詳情,刪除數(shù)據(jù)表的時(shí)候,表的定義和表中所有的數(shù)據(jù)均會(huì)被刪除。因此,在進(jìn)行刪除操作前,最好對(duì)表中的數(shù)據(jù)做一個(gè)備份,以免造成無(wú)法挽回的后果
    2022-07-07
  • Mysql Sql 語(yǔ)句練習(xí)題(50道)

    Mysql Sql 語(yǔ)句練習(xí)題(50道)

    mysql一直作為比較熱門的數(shù)據(jù)庫(kù)存儲(chǔ),搭配php使用簡(jiǎn)直是絕配,mysql的sql語(yǔ)句也是很重要的一門課,這里為大家分享一下sql語(yǔ)句,大家可以試試
    2020-12-12
  • 徹底搞懂MySQL存儲(chǔ)過(guò)程和函數(shù)

    徹底搞懂MySQL存儲(chǔ)過(guò)程和函數(shù)

    我們大家都知道MySQL 存儲(chǔ)過(guò)程是從 MySQL 5.0 開(kāi)始逐漸增加新的功能,下面這篇文章主要給大家介紹了關(guān)于MySQL存儲(chǔ)過(guò)程和函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • MySQL筆記之修改表的實(shí)現(xiàn)方法

    MySQL筆記之修改表的實(shí)現(xiàn)方法

    我們?cè)趧?chuàng)建表的過(guò)程中難免會(huì)考慮不周,因此后期會(huì)修改表。本篇文章就介紹了在mysql中修改表的實(shí)現(xiàn)方法。需要的朋友參考下
    2013-05-05
  • MySQL修改密碼的四種實(shí)現(xiàn)方式

    MySQL修改密碼的四種實(shí)現(xiàn)方式

    文章主要介紹了如何使用命令行工具修改MySQL密碼,包括使用`setpassword`命令和`mysqladmin`命令,此外,還詳細(xì)描述了忘記密碼時(shí)的處理方法,包括關(guān)閉MySQL服務(wù)、跳過(guò)權(quán)限表認(rèn)證、修改密碼、刷新權(quán)限等步驟
    2025-02-02
  • mysql中GROUP_CONCAT函數(shù)使用技巧及問(wèn)題詳解

    mysql中GROUP_CONCAT函數(shù)使用技巧及問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于mysql中GROUP_CONCAT函數(shù)使用技巧及問(wèn)題的相關(guān)資料,GROUP_CONCAT是MySQL中的一個(gè)聚合函數(shù),它用于將多行數(shù)據(jù)按照指定的順序連接成一個(gè)字符串并返回結(jié)果,需要的朋友可以參考下
    2023-11-11
  • Mysql備份多個(gè)數(shù)據(jù)庫(kù)代碼實(shí)例

    Mysql備份多個(gè)數(shù)據(jù)庫(kù)代碼實(shí)例

    這篇文章主要介紹了Mysql備份多個(gè)數(shù)據(jù)庫(kù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

离岛区| 汉阴县| 穆棱市| 邛崃市| 进贤县| 金秀| 衢州市| 永川市| 赤峰市| 石城县| 潮安县| 临夏市| 拜城县| 九龙坡区| 乐山市| 同心县| 潼南县| 娄烦县| 方山县| 邢台市| 通州市| 湛江市| 鄂伦春自治旗| 丹寨县| 龙门县| 洮南市| 宿迁市| 万宁市| 普格县| 通渭县| 聂拉木县| 青冈县| 阜南县| 乐东| 旬阳县| 商丘市| 永寿县| 西畴县| 城市| 色达县| 蓬安县|