Mysql分組查詢group by與with rollup方式
Mysql分組查詢group by與with rollup
當(dāng)用select*from 表名 group by‘字段名1’將選出來的內(nèi)容將按照字段1分組,其他列不盡相同,會以最前面的內(nèi)容顯示:
GROUP BY 后面可以跟多個列名,表示以多列作為分組依據(jù):
mysql> select `name`,`date`,count(*) from `employee_tbl` group by `name`,date; +------+---------------------+----------+ | name | date | count(*) | +------+---------------------+----------+ | 小麗 | 2016-04-19 15:26:02 | 1 | | 小明 | 2016-04-04 15:26:54 | 1 | | 小明 | 2016-04-11 15:26:40 | 1 | | 小明 | 2016-04-22 15:25:33 | 1 | | 小王 | 2016-04-07 15:26:14 | 1 | | 小王 | 2016-04-20 15:25:47 | 1 | +------+---------------------+----------+ 6 rows in set (0.05 sec)
group by 后可以跟with rollup,表示在進(jìn)行分組統(tǒng)計的基礎(chǔ)上再次進(jìn)行匯總統(tǒng)計(在每個分組下都會有統(tǒng)計匯總):
mysql> select*from r; +------+-----+------+ | name | cat | fish | +------+-----+------+ | 小明 | x | 1 | | 小明 | x | 2 | | 小明 | x | 4 | | 小明 | y | 2 | | 小明 | y | 2 | | 小明 | z | 1 | | 小紅 | x | 1 | | 小紅 | x | 3 | | 小紅 | y | 1 | | 小紅 | y | 2 | | 小青 | y | 3 | | 小青 | z | 2 | | 小青 | z | 1 | +------+-----+------+ 13 rows in set (0.05 sec) mysql> select name,cat,fish,count(*) from r group by name with rollup; +------+-----+------+----------+ | name | cat | fish | count(*) | +------+-----+------+----------+ | 小紅 | x | 1 | 4 | | 小明 | x | 1 | 6 | | 小青 | y | 3 | 3 | | NULL | y | 3 | 13 | +------+-----+------+----------+ 4 rows in set (0.05 sec) mysql> select name,cat,fish,count(*) from r group by name,cat with rollup; +------+------+------+----------+ | name | cat | fish | count(*) | +------+------+------+----------+ | 小紅 | x | 1 | 2 | | 小紅 | y | 1 | 2 | | 小紅 | NULL | 1 | 4 | | 小明 | x | 1 | 3 | | 小明 | y | 2 | 2 | | 小明 | z | 1 | 1 | | 小明 | NULL | 1 | 6 | | 小青 | y | 3 | 1 | | 小青 | z | 2 | 2 | | 小青 | NULL | 2 | 3 | | NULL | NULL | 2 | 13 | +------+------+------+----------+ 11 rows in set (0.06 sec) mysql> select name,cat,fish,count(*) from r group by name,cat,fish with rollup; +------+------+------+----------+ | name | cat | fish | count(*) | +------+------+------+----------+ | 小紅 | x | 1 | 1 | | 小紅 | x | 3 | 1 | | 小紅 | x | NULL | 2 | | 小紅 | y | 1 | 1 | | 小紅 | y | 2 | 1 | | 小紅 | y | NULL | 2 | | 小紅 | NULL | NULL | 4 | | 小明 | x | 1 | 1 | | 小明 | x | 2 | 1 | | 小明 | x | 4 | 1 | | 小明 | x | NULL | 3 | | 小明 | y | 2 | 2 | | 小明 | y | NULL | 2 | | 小明 | z | 1 | 1 | | 小明 | z | NULL | 1 | | 小明 | NULL | NULL | 6 | | 小青 | y | 3 | 1 | | 小青 | y | NULL | 1 | | 小青 | z | 1 | 1 | | 小青 | z | 2 | 1 | | 小青 | z | NULL | 2 | | 小青 | NULL | NULL | 3 | | NULL | NULL | NULL | 13 | +------+------+------+----------+ 23 rows in set (0.07 sec) mysql> select name,cat,fish,sum(fish) from r group by name with rollup; +------+-----+------+-----------+ | name | cat | fish | sum(fish) | +------+-----+------+-----------+ | 小紅 | x | 1 | 7 | | 小明 | x | 1 | 12 | | 小青 | y | 3 | 6 | | NULL | y | 3 | 25 | +------+-----+------+-----------+ 4 rows in set (0.05 sec) mysql> select name,cat,fish,sum(fish) from r group by name,cat with rollup; +------+------+------+-----------+ | name | cat | fish | sum(fish) | +------+------+------+-----------+ | 小紅 | x | 1 | 4 | | 小紅 | y | 1 | 3 | | 小紅 | NULL | 1 | 7 | | 小明 | x | 1 | 7 | | 小明 | y | 2 | 4 | | 小明 | z | 1 | 1 | | 小明 | NULL | 1 | 12 | | 小青 | y | 3 | 3 | | 小青 | z | 2 | 3 | | 小青 | NULL | 2 | 6 | | NULL | NULL | 2 | 25 | +------+------+------+-----------+ 11 rows in set (0.06 sec) mysql> select name,cat,fish,sum(fish) from r group by name,cat,fish with rollup; +------+------+------+-----------+ | name | cat | fish | sum(fish) | +------+------+------+-----------+ | 小紅 | x | 1 | 1 | | 小紅 | x | 3 | 3 | | 小紅 | x | NULL | 4 | | 小紅 | y | 1 | 1 | | 小紅 | y | 2 | 2 | | 小紅 | y | NULL | 3 | | 小紅 | NULL | NULL | 7 | | 小明 | x | 1 | 1 | | 小明 | x | 2 | 2 | | 小明 | x | 4 | 4 | | 小明 | x | NULL | 7 | | 小明 | y | 2 | 4 | | 小明 | y | NULL | 4 | | 小明 | z | 1 | 1 | | 小明 | z | NULL | 1 | | 小明 | NULL | NULL | 12 | | 小青 | y | 3 | 3 | | 小青 | y | NULL | 3 | | 小青 | z | 1 | 1 | | 小青 | z | 2 | 2 | | 小青 | z | NULL | 3 | | 小青 | NULL | NULL | 6 | | NULL | NULL | NULL | 25 | +------+------+------+-----------+ 23 rows in set (0.07 sec)
Mysql分組查詢統(tǒng)計每個選項(xiàng)的數(shù)量
幫客戶做個問卷調(diào)查,最后需要統(tǒng)計每道問題的每個選項(xiàng)的數(shù)量。
思路是先按問題分組,然后使用case語句區(qū)分每個選項(xiàng),然后做統(tǒng)計。
SQL語句如下:
SELECT examQuestionId, SUM(CASE WHEN answer='非常同意' then 1 else 0 end) as '非常同意', SUM(CASE WHEN answer='有點(diǎn)同意' then 1 else 0 end) as '有點(diǎn)同意', SUM(CASE WHEN answer='中立' then 1 else 0 end) as '中立', SUM(CASE WHEN answer='有點(diǎn)不同意' then 1 else 0 end) as '有點(diǎn)不同意', SUM(CASE WHEN answer='非常不同意' then 1 else 0 end) as '非常不同意' FROM bm_exam_paper_question GROUP BY examQuestionId ORDER BY examQuestionId
執(zhí)行效果如下:
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
徹底弄懂Python中的回調(diào)函數(shù)(callback)
回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python中回調(diào)函數(shù)(callback)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06python中response.text 和response.content的區(qū)別詳解
這篇文章主要介紹了python中response.text 和response.content的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法
今天小編就為大家分享一篇Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08python多線程實(shí)現(xiàn)同時執(zhí)行兩個while循環(huán)的操作
這篇文章主要介紹了python多線程實(shí)現(xiàn)同時執(zhí)行兩個while循環(huán)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05利用pipenv和pyenv管理多個相互獨(dú)立的Python虛擬開發(fā)環(huán)境
這篇文章主要介紹了利用pipenv和pyenv管理多個相互獨(dú)立的Python虛擬開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11一篇文章徹底弄懂Python中的if?__name__?==?__main__
在Python當(dāng)中如果代碼寫得規(guī)范一些,通常會寫上一句if '__name__'=='__main__:'作為程序的入口,下面這篇文章主要給大家介紹了關(guān)于如何通過一篇文章徹底弄懂Python中的if?__name__?==?__main__的相關(guān)資料,需要的朋友可以參考下2022-12-12Python使用PIL庫實(shí)現(xiàn)驗(yàn)證碼圖片的方法
這篇文章主要介紹了Python使用PIL庫實(shí)現(xiàn)驗(yàn)證碼圖片的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python基于PIL庫生成驗(yàn)證碼圖片的相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下2016-03-03Pandas DataFrame中的tuple元素遍歷的實(shí)現(xiàn)
這篇文章主要介紹了Pandas DataFrame中的tuple元素遍歷的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python采集大學(xué)教務(wù)系統(tǒng)成績單實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Python采集大學(xué)教務(wù)系統(tǒng)成績單實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04