Mysql中強(qiáng)大的group?by語句解析
group by語句介紹
GROUP BY 語句根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。在分組的列上我們可以使用 COUNT, SUM, AVG,等函數(shù)。
工具:
sqlyog
實(shí)例
建表 user表
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `number` int(11) DEFAULT NULL, `sex` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL, `salary` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


信息就不補(bǔ)充了~
(1)基本用法
根據(jù)性別 sex 來進(jìn)行分組,查詢 user 表中的姓名,年齡,性別。雖然是分組了,但只顯示一個(gè)用戶,其他的不顯示。
SELECT NAME,age,sex FROM USER GROUP BY sex;

(2)GROUP BY語句中的GROUP_CONCAT函數(shù)()
根據(jù) sex 字段,來查詢 name字段和 age字段的詳細(xì)信息。
SELECT sex ,GROUP_CONCAT(NAME), GROUP_CONCAT(age)FROM USER GROUP BY sex;

(3)利用 count函數(shù)來查詢性別的總?cè)藬?shù)
根據(jù) sex 字段來查詢 name 字段的詳細(xì)信息和 sex 字段性別的人數(shù)。
SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER GROUP BY sex;

(4)where語句
根據(jù) sex字段進(jìn)行分組,用 where語句來查詢年齡大于25的人數(shù)
SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER WHERE age >25 GROUP BY sex;

(5)SUM MAX MIN AVG 函數(shù)
根據(jù) sex 用 SUM MAX MIN AVG 函數(shù)來查詢用戶的總資金,最大資金,最小資金,平局資金
SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex),SUM(salary),MAX(salary),MIN(salary),AVG(salary) FROM USER GROUP BY sex;

(6)HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 關(guān)鍵字無法與聚合函數(shù)一起使用。 HAVING 子句可以讓我們篩選分組后的各組數(shù)據(jù)。 根據(jù) sex 語句進(jìn)行分組,來查詢各組中資金大于1500的組
SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER GROUP BY sex HAVING SUM(salary)>1500;

(7)WITH ROLLUP 子句:
WITH ROLLUP 可以實(shí)現(xiàn)在分組統(tǒng)計(jì)數(shù)據(jù)基礎(chǔ)上再進(jìn)行相同的統(tǒng)計(jì)(SUM,AVG,COUNT…)。
SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex),SUM(salary),MAX(salary),MIN(salary),AVG(salary) FROM USER GROUP BY sex WITH ROLLUP;

結(jié)尾
從中發(fā)現(xiàn) GROUP BY 函數(shù)還是十分強(qiáng)大的,使得分組查找效率更高!
到此這篇關(guān)于Mysql中強(qiáng)大的group by語句解析的文章就介紹到這了,更多相關(guān)Mysql的group by語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
centos7環(huán)境下創(chuàng)建mysql5.6多實(shí)例的方法詳解
這篇文章主要介紹了centos7環(huán)境下創(chuàng)建mysql5.6多實(shí)例的方法,詳細(xì)分析了centos7創(chuàng)建mysql5.6多實(shí)例的具體步驟、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-02-02
Java將excel中的數(shù)據(jù)導(dǎo)入到mysql中
這篇文章主要介紹了Java將excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,需要的朋友可以參考借鑒2018-05-05
MySQL order by與group by查詢優(yōu)化實(shí)現(xiàn)詳解
order by 子句盡量使用index方式排序(即using index),避免使用filesort方式排序(即using filesort)。Index方式效率高,它指MySQL掃描索引本身完成排序,filesort則效率低2022-11-11
windows和linux安裝mysql后啟用日志管理功能的方法
在默認(rèn)情況下,mysql安裝后是沒有啟用日志管理功能的,這給維護(hù)帶來很多不便的地方,下面介紹windows和linux安裝mysql后啟用日志管理功能的方法2014-01-01
Mysql修改存儲(chǔ)過程相關(guān)權(quán)限問題
這篇文章主要介紹了Mysql修改存儲(chǔ)過程相關(guān)權(quán)限問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Mysql?索引?BTree?與?B+Tree?的區(qū)別(面試)
這篇文章主要介紹了Mysql索引BTree與B+Tree的區(qū)別,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
MySQL遷移到Oracle數(shù)據(jù)庫的超詳細(xì)步驟和方法總結(jié)
今天接到一個(gè)任務(wù),讓我把MySQL中的表與數(shù)據(jù)移植到Oracle中,所以這里總結(jié)下,這篇文章主要給大家介紹了關(guān)于MySQL遷移到Oracle數(shù)據(jù)庫的超詳細(xì)步驟和方法,需要的朋友可以參考下2023-11-11
MySQL數(shù)據(jù)庫表的增刪改查操作(進(jìn)階)
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫表的增刪改查操作,文章記錄常用的SQL查詢語句,包括數(shù)據(jù)庫、表和數(shù)據(jù)的增刪改查,逐漸擴(kuò)展到其他比較復(fù)雜的查詢語句,需要的朋友可以參考下2023-11-11

