mysql分組后合并顯示一個(gè)字段的多條數(shù)據(jù)方式
mysql分組合并顯示一個(gè)字段多條數(shù)據(jù)
首先我們有一張學(xué)生興趣表(student_hobby),字段包括主鍵(id)、姓名(name)、興趣(hobby)
表中數(shù)據(jù)如下
id | name | hobby |
---|---|---|
0 | 小明 | 籃球 |
1 | 小明 | 跑步 |
2 | 小華 | 讀書 |
然后我們想讓他顯示成如下效果。
name | hobbies |
---|---|
小明 | 籃球,跑步 |
小華 | 讀書 |
那么我們可以使用如下SQL。
select name,group_concat(hobby separator ',') hobbies from student_hobbt group by name;
其中分隔符逗號(hào)也可以替換為其他想要使用的字符。
mysql多字段分組
mysql多字段分組
group by 語法
分組查詢是對(duì)數(shù)據(jù)按照某個(gè)或多個(gè)字段進(jìn)行分組,MYSQL中使用group by關(guān)鍵字對(duì)數(shù)據(jù)進(jìn)行分組,基本語法形式為:
[GROUP BY 字段][HAVING <條件表達(dá)式>]
多字段分組
使用GROUP BY可以對(duì)多個(gè)字段進(jìn)行分組,GROUP BY關(guān)鍵字后面跟需要分組的字段,MYSQL根據(jù)多字段的值來進(jìn)行層次分組,分組層次從左到右,即先按照第1個(gè)字段分組,然后在第1個(gè)字段值相同的記錄中,再根據(jù)第2個(gè)字段的值進(jìn)行分組,以此類推。
GROUP BY與ORDER BY一起使用(分組排序)
某些情況下需要對(duì)分組進(jìn)行排序,order by用來對(duì)查詢的記錄排序,如果和GROUP BY一起使用,就可以完成對(duì)分組的排序
例如下表:
將上表中數(shù)據(jù)按照wellid和年月的格式分組統(tǒng)計(jì):
sql語句:
select wellid,sum(number) as sum,DATE_FORMAT(time,'%Y-%m') as createTime from well GROUP BY wellid,createTime order by createTime;
統(tǒng)計(jì)結(jié)果:
使用having過濾分組
GROUP BY可以和HAVING一起限定顯示記錄所需要滿足的條件,只有滿足條件的分組才會(huì)被顯示
還是上面張表,我們這次限定只要2020年12月之后的數(shù)據(jù):
select wellid,sum(number) as sum,DATE_FORMAT(time,'%Y-%m') as createTime from well GROUP BY wellid,createTime having createTime>'2020-12' order by createTime;
查詢結(jié)果:
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL之高可用集群部署及故障切換實(shí)現(xiàn)
這篇文章主要介紹了MySQL之高可用集群部署及故障切換實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04分享mysql的current_timestamp小坑及解決
這篇文章主要介紹了mysql的current_timestamp小坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11MySQL InnoDB和MyISAM數(shù)據(jù)引擎的差別分析
InnoDB和MyISAM是在使用MySQL最常用的兩個(gè)表類型,各有優(yōu)缺點(diǎn),視具體應(yīng)用而定。基本的差別為:MyISAM類型不支持事務(wù)處理等高級(jí)處理,而InnoDB類型支持2011-05-05MySQL實(shí)現(xiàn)批量插入測試數(shù)據(jù)的方式總結(jié)
在開發(fā)過程中經(jīng)常需要一些測試數(shù)據(jù),?這個(gè)時(shí)候如果手敲的話,?十行二十行還好,?多了就很死亡了,?接下來介紹兩種常用的MySQL測試數(shù)據(jù)批量生成方式,希望對(duì)大家有所幫助2023-05-05mysql雙機(jī)熱備實(shí)現(xiàn)方案【可測試】
雙機(jī)熱備從廣義上講,就是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器,互相備份,共同執(zhí)行同一服務(wù)。這篇文章主要介紹了mysql雙機(jī)熱備實(shí)現(xiàn)方案,需要的朋友可以參考下2019-10-10MySQL實(shí)戰(zhàn)之Insert語句的使用心得
這篇文章主要給大家介紹了關(guān)于MySQL實(shí)戰(zhàn)之Insert語句的使用心得的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10MySQL實(shí)現(xiàn)類似Oracle序列的方案
今天小編就為大家分享一篇關(guān)于MySQL實(shí)現(xiàn)類似Oracle序列的方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03