Mysql分組查詢group by語句詳解

(1) group by的含義:將查詢結果按照1個或多個字段進行分組,字段值相同的為一組
(2) group by可用于單個字段分組,也可用于多個字段分組

select * from employee;
+------+------+--------+------+------+-------------+ | num | d_id | name | age | sex | homeaddr | +------+------+--------+------+------+-------------+ | 1 | 1001 | 張三 | 26 | 男 | beijinghdq | | 2 | 1002 | 李四 | 24 | 女 | beijingcpq | | 3 | 1003 | 王五 | 25 | 男 | changshaylq | | 4 | 1004 | Aric | 15 | 男 | England | +------+------+--------+------+------+-------------+ 
select * from employee group by d_id,sex;
select * from employee group by sex; +------+------+--------+------+------+------------+ | num | d_id | name | age | sex | homeaddr | +------+------+--------+------+------+------------+ | 2 | 1002 | 李四 | 24 | 女 | beijingcpq | | 1 | 1001 | 張三 | 26 | 男 | beijinghdq | +------+------+--------+------+------+------------+ 根據sex字段來分組,sex字段的全部值只有兩個('男'和'女'),所以分為了兩組 當group by單獨使用時,只顯示出每組的第一條記錄 所以group by單獨使用時的實際意義不大

group by + group_concat()
(1) group_concat(字段名)可以作為一個輸出字段來使用,
(2) 表示分組之后,根據分組結果,使用group_concat()來放置每一組的某字段的值的集合

select sex from employee group by sex;
+------+ | sex | +------+ | 女 | | 男 | +------+ select sex,group_concat(name) from employee group by sex; +------+--------------------+ | sex | group_concat(name) | +------+--------------------+ | 女 | 李四 | | 男 | 張三,王五,Aric | +------+--------------------+ select sex,group_concat(d_id) from employee group by sex; +------+--------------------+ | sex | group_concat(d_id) | +------+--------------------+ | 女 | 1002 | | 男 | 1001,1003,1004 | +------+--------------------+

group by + 集合函數
(1) 通過group_concat()的啟發,我們既然可以統計出每個分組的某字段的值的集合,那么我們也可以通過集合函數來對這個"值的集合"做一些操作

select sex,group_concat(age) from employee group by sex;
+------+-------------------+ | sex | group_concat(age) | +------+-------------------+ | 女 | 24 | | 男 | 26,25,15 | +------+-------------------+ 
分別統計性別為男/女的人年齡平均值 select sex,avg(age) from employee group by sex; +------+----------+ | sex | avg(age) | +------+----------+ | 女 | 24.0000 | | 男 | 22.0000 | +------+----------+
分別統計性別為男/女的人的個數 select sex,count(sex) from employee group by sex; +------+------------+ | sex | count(sex) | +------+------------+ | 女 | 1 | | 男 | 3 | +------+------------+

group by + having
(1) having 條件表達式:用來分組查詢后指定一些條件來輸出查詢結果
(2) having作用和where一樣,但having只能用于group by

select sex,count(sex) from employee group by sex having count(sex)>2; +------+------------+ | sex | count(sex) | +------+------------+ | 男 | 3 | +------+------------+

group by + with rollup
(1) with rollup的作用是:在最后新增一行,來記錄當前列里所有記錄的總和

select sex,count(age) from employee group by sex with rollup; +------+------------+ | sex | count(age) | +------+------------+ | 女 | 1 | | 男 | 3 | | NULL | 4 | +------+------------+ select sex,group_concat(age) from employee group by sex with rollup; +------+-------------------+ | sex | group_concat(age) | +------+-------------------+ | 女 | 24 | | 男 | 26,25,15 | | NULL | 24,26,25,15 | +------+-------------------+

轉載于:https://www.cnblogs.com/wangyayun/p/6835686.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392880.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392880.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392880.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode 75. 顏色分類(雙指針)

給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 注意: 不能使用代碼…

火車頭如何才能設置發布的時候,如果是有html代碼就直接的轉換掉,互聯網上笑話抽取及排重---火車頭采集器的使用和MD5算法的應用...

10011311341 呂濤、10011311356李紅目的:通過熟悉使用火車頭采集器,在網絡上采取3萬條笑話并進行排重,以此來熟悉web文本挖掘的一些知識。過程:本次學習,主要分成兩個部分。第一部分是笑話文本的采集,第二部…

Tcp_wrapper

在Linux進程分為:獨立進程和非獨立進程非獨立進程:是依賴于超級守護進程的進程, 且受Xinetd 管理,并在啟動服務時 必須啟動例子:#chkconfig –level 2345 telnetd on關與chkconfig 的命令:#chkconfig –lis…

angular 動畫_如何在Angular 6中使用動畫

angular 動畫介紹 (Introduction) Animation is defined as the transition from an initial state to a final state. It is an integral part of any modern web application. Animation not only helps us create a great UI but it also makes the application interesting…

win10上面安裝win7的虛擬機怎么相互ping通

最近干了一些很蛋疼的事,這些都是自己踩過的坑,記錄下來方便自己以后查閱 首先我的目的就是為了在自己的PC機上面部署一個SVN服務器,然后安裝一個客戶端,自己寫的軟件就可以定期入庫,做好自己的版本控制,但…

新東方面試知識點記錄

3.spring mvc 怎么接受http post 方式提交過來的xml數據?servlet中怎么接受? RequestMapping(value"/jsonPrase", headers {"content-typeapplication/json","content-typeapplication/xml"}) ResponseBody …

win10用計算機名訪問文件夾,win10系統提示你當前無權訪問該文件夾的解決方法【圖文教程】...

Win10系統下,我們在訪問或更改某些系統文件夾時,有時會遇到系統提示“你當前無權訪問該文件夾”的情況。那么,遇到這種情況的話,我們該怎么辦呢?接下來,小編就向大家分享win10系統提示“你當前無權訪問該文…

.Net Micro Framework研究—實現SideShow窗體界面

基于MF系統的Windows SideShow界面是非常炫的(如下圖)。既然微軟能用.Net Micro Framework實現這么棒的界面效果,我想我們也能做到。 (SideShow模擬器界面和游戲程序中的右鍵菜單—注意菜單彈出后,其它的界面變暗了&am…

leetcode 344. 反轉字符串

編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 你可以假設數組中的所有字符都是 ASCII 碼表中的可打印字符。…

事件捕獲(capture)和冒泡事件(Bubble)

PS:這里是我從別人的博客中學習事件捕獲和冒泡是的總結,如果你也感興趣的話,建議你點擊鏈接查看原博客的內容,他們寫的都是很經典! 對“捕獲”和“冒泡”這兩個概念,我想我們對冒泡更熟悉一些&…

gulp編譯css_如何用gulp縮小CSS

gulp編譯cssby Vinicius Gularte由Vinicius Gularte 如何用gulp縮小CSS (How to minify your CSS with gulp) In this article, Im going to show a simple way to automatically minify your CSS files using gulp. ?在本文中,我將展示一種使用gulp自動縮小CSS文…

線段樹(區間更改,區間查最值)模板

線段樹(區間更改,區間查最值)模板 主要重在理解線段樹,理解了怎么改都可以,還有以后不要直接抄模板,要寫出自己想的一份代碼 &代碼&#xff1a; #include <cstdio> #include <bitset> #include <iostream> #include <set> #include <cmath>…

Unity3D項目開發一點經驗

我們主要使用3dsmax2010進行制作&#xff0c;輸出FBX的類型導入Unity3D中。默認情況下&#xff0c;3dsmax8可以和U3D軟件直接融合&#xff0c;自動轉換為FBX物體。 注意事項如下&#xff1a; 1.面數控制 在MAX軟件中制作單一GameObject物體的面數不能超過65000個三角形&#xf…

leetcode 142. 環形鏈表 II(set/快慢指針)

給定一個鏈表&#xff0c;返回鏈表開始入環的第一個節點。 如果鏈表無環&#xff0c;則返回 null。 為了表示給定鏈表中的環&#xff0c;我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置&#xff08;索引從 0 開始&#xff09;。 如果 pos 是 -1&#xff0c;則在該鏈表中沒有…

html5 支持表格嗎,html5 – 在HTML 5中使用表格很好嗎?

簡單規則 – 使用表格表格數據&#xff0c;使用其他元素進行演示(使用CSS設計布局)&#xff0c;如div&#xff0c;section&#xff0c;aside&#xff0c;nav等。這為他們所持有的內容提供了意義&#xff0c;而不是為所有內容使用表事實是&#xff0c;開發人員在90年代使用了表格…

css網格_我如何記住CSS網格屬性

css網格The syntax for CSS Grid is foreign and hard to remember. But if you can’t remember CSS Grid’s syntax, you won’t be confident when you use CSS Grid.CSS Grid的語法是外來的&#xff0c;很難記住。 但是&#xff0c;如果您不記得CSS Grid的語法&#xff0c;…

2017年讀書計劃(一)

前言 這篇博文就暫時不記錄技術了&#xff0c;記錄下生活。對自己今年2017年做個讀書計劃安排。 最近在看一部網絡劇 - 《花間提壺方大廚》&#xff0c;也許你們會感覺我很無聊&#xff0c;我也是被頭條帶壞了&#xff0c;每天上班一個小時的地下交通-地鐵&#xff0c;就借助上…

.net10個必備工具

1.NUnit 編寫單元測試的工具2.NDoc 自動生成代碼文檔的工具3.NAnt 編譯解決方案的工具4.CodeSmith 自動生成代碼的工具5.FxCop 檢查你的代碼是否按照規范編寫的工具6.Snippet Compiler 編譯少量代碼的工具7.ASP.NET Version Switcher Visual Studio .NET Project Conve…

音標

音標 oror ds念子音&#xff0c;ts念s音

leetcode 530. 二叉搜索樹的最小絕對差(中序遍歷)

給你一棵所有節點為非負值的二叉搜索樹&#xff0c;請你計算樹中任意兩節點的差的絕對值的最小值。示例&#xff1a;輸入&#xff1a;1\3/2輸出&#xff1a; 1解釋&#xff1a; 最小絕對差為 1&#xff0c;其中 2 和 1 的差的絕對值為 1&#xff08;或者 2 和 3&#xff09;。代…