GROUP BY dept,name 的意思,就是先按dqpt分組,如果出現(xiàn)dept相同的,再按name分組,也就是說除非出現(xiàn)dept和name都相同的記錄才會合為一組,否則的話是不會合在一起的,這樣的話顯示出的name就只有一個了。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比清豐網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式清豐網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋清豐地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
你用現(xiàn)實(shí)生活中的例子來理解一下就很明白啦:比如說你們班上的同學(xué)如果按性別來分組,可以分為兩組,如果按照姓名來分組,那就基本上有多少個同學(xué)就有多少組(除非有同名同姓的),那如果按性別和姓名同時分組呢,那分的組就是同學(xué)數(shù)的兩倍了,即“男的張三”一組,“女的張三”一組,“男的李四”一組,“女的李四”一組……當(dāng)然,這其中有一半的組是空的,剩下的也是每一組只有一個人??!理解沒有?
所以 Group by 后面的分組字段不是隨便加的,多個字段的分組是需要排列組合的,分的組數(shù)會按幾何級數(shù)增長!
補(bǔ)充說一句:本來按名字來分組就是個愚不可及的想法了!更何況還要加上其他分組條件,這樣的話基本上就是一組只有一個了!
上一篇聚合函數(shù)末尾處使用了GROUP BY,但沒有做具體的介紹,這一篇就主要介紹一下GROUP BY的使用方法。順便介紹一下對分組查詢的過濾關(guān)鍵詞HAVING的用法。
在MySQL中,GROUP BY關(guān)鍵詞可以根據(jù)一個或多個字段對查詢結(jié)果進(jìn)行分組,類似于Excel中的數(shù)據(jù)透視表。可以單獨(dú)使用,但一般情況下都是結(jié)合聚合函數(shù)來使用的。
語法格式如下:
下面演示都是基于這一張簡單的省份對應(yīng)大區(qū)的表格。
【單獨(dú)使用GROUP BY】
單獨(dú)使用GROUP BY關(guān)鍵字時,查詢結(jié)果會只顯示每個分組的第一條記錄。
根據(jù)省份表里面的大區(qū)進(jìn)行聚合,查詢?nèi)珖卜殖闪藥讉€大區(qū),SQL語句如下↓
【GROUP BY結(jié)合聚合函數(shù)】
5個聚合函數(shù)上一篇已經(jīng)詳細(xì)介紹了用法,GROUP BY和聚合函數(shù)結(jié)合使用也是最頻繁的,下面就繼續(xù)使用省份表來求每個大區(qū)有多少個省份,對應(yīng)的聚合函數(shù)就是COUNT函數(shù),SQL語句如下↓
【GROUP BY結(jié)合GROUP_CONCAT】
這還是一個很有用的功能,GROUP_CONCAT() 函數(shù)會把每個分組的字段值都合并成一行顯示出來。
下面繼續(xù)使用省份表,把每個大區(qū)對應(yīng)的省份放在一行展示,用分號分開,SQL語句如下↓
【GROUP BY結(jié)合WITH ROLLUP】
WITH POLLUP關(guān)鍵詞用來在所有記錄的最后加上一條記錄,這條記錄是上面所有記錄的總和,SQL語句如下↓
【GROUP BY結(jié)合HAVING】
在MySQL中,可以使用HAVING關(guān)鍵字對分組后的數(shù)據(jù)進(jìn)行過濾。
使用 HAVING 關(guān)鍵字的語法格式如下:
HAVING關(guān)鍵詞和WHERE關(guān)鍵詞都可以用來過濾數(shù)據(jù),且HAVING支持WHERE關(guān)鍵詞中所有的操作符和語法。但是WHERE和HAVING關(guān)鍵字也存在以下幾點(diǎn)差異:
下面篩選一下省份數(shù)量在7個及以上的大區(qū),SQL語句如下↓
【GROUP BY結(jié)合ORDER BY】
聚合后的數(shù)據(jù),一半情況下也是需要進(jìn)行排序的,通過ORDER BY對聚合查詢結(jié)果進(jìn)行排序,對省份數(shù)量按從大到小進(jìn)行排序,SQL語句如下↓
End
◆ PowerBI開場白
◆ Python高德地圖可視化
◆ Python不規(guī)則條形圖
你按性別分組,因?yàn)樾詣e就兩個值,所以出來的肯定是兩條結(jié)果,男一組女一組,這就是分組的意義。分組要和聚簇函數(shù)配合使用。
比如你想看男/女各有多少個,select sex,count(sex) from student group by sex; 得到的也是兩條,男多少,女多少。
至于你想查出所有學(xué)生,那和分組沒關(guān)系啊。或者你按學(xué)生姓名分組,這樣有多少學(xué)生就有多少組,但這樣還不如直接查全表呢。
select?性別,
case?when?年齡?between?20?and?29?then?1?else?0?end?[20-29],
case?when?年齡?between?30?and?39?then?1?else?0?end?[30-39],
case?when?年齡?between?40?and?49?then?1?else?0?end?[40-49]
from?表名
group?by?性別
以上使用于大部分?jǐn)?shù)據(jù)庫
只是在起別名上,只適用于sqlserver
oracle的話起別名
select?性別,
case?when?年齡?between?20?and?29?then?1?else?0?end?"20-29",
case?when?年齡?between?30?and?39?then?1?else?0?end?"30-39",
case?when?年齡?between?40?and?49?then?1?else?0?end?"40-49"
from?表名
group?by?性別
mysql的話
select?性別,
case?when?年齡?between?20?and?29?then?1?else?0?end?`20-29,
case?when?年齡?between?30?and?39?then?1?else?0?end?`30-39`,
case?when?年齡?between?40?and?49?then?1?else?0?end?`40-49
from?表名
group?by?性別
本文標(biāo)題:mysql怎么按性別分組 如何按性別進(jìn)行分組
URL分享:http://chinadenli.net/article28/dodsgjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、微信公眾號、標(biāo)簽優(yōu)化、App設(shè)計、ChatGPT、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)