最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

mysql中g(shù)roup by用法是什么

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-08 22:13:19
文檔

mysql中g(shù)roup by用法是什么

mysql中g(shù)roup by用法是什么:mysql中g(shù)roup by的用法是配合聚合函數(shù),利用分組信息進(jìn)行統(tǒng)計,語句如select name,sum(id) from test group by name,number。推薦:《mysql視頻教程》先來看下表1,表名為test: 執(zhí)行如下SQL語句:SELECT name FROM test GR
推薦度:
導(dǎo)讀mysql中g(shù)roup by用法是什么:mysql中g(shù)roup by的用法是配合聚合函數(shù),利用分組信息進(jìn)行統(tǒng)計,語句如select name,sum(id) from test group by name,number。推薦:《mysql視頻教程》先來看下表1,表名為test: 執(zhí)行如下SQL語句:SELECT name FROM test GR

推薦:《mysql視頻教程》

先來看下表1,表名為test:
表1
執(zhí)行如下SQL語句:

SELECT name FROM test GROUP BY name

你應(yīng)該很容易知道運(yùn)行的結(jié)果,沒錯,就是下表2:
表2
可是為了能夠更好的理解“group by”多個列“和”聚合函數(shù)“的應(yīng)用,我建議在思考的過程中,由表1到表2的過程中,增加一個虛構(gòu)的中間表:虛擬表3。下面說說如何來思考上面SQL語句執(zhí)行情況:

1.FROM test:該句執(zhí)行后,應(yīng)該結(jié)果和表1一樣,就是原來的表。

2.FROM test Group BY name:該句執(zhí)行后,我們想象生成了虛擬表3,如下所圖所示,生成過程是這樣的:group by name,那么找name那一列,具有相同name值的行,合并成一行,如對于name值為aa的,那么<1 aa 2>與<2 aa 3>兩行合并成1行,所有的id值和number值寫到一個單元格里面,如下圖所示
在這里插入圖片描述
3.接下來就要針對虛擬表3執(zhí)行Select語句了:

(1)如果執(zhí)行select *的話,那么返回的結(jié)果應(yīng)該是虛擬表3,可是id和number中有的單元格里面的內(nèi)容是多個值的,那么id跟number會返回各自單元格中的排序第一個值。id列會返回1,3,5

(2)我們再看name列,每個單元格只有一個數(shù)據(jù),所以我們select name的話,就沒有問題了。為什么name列每個單元格只有一個值呢,因為我們就是用name列來group by的。

(3)那么對于id和number里面的單元格有多個數(shù)據(jù)的情況怎么辦呢?答案就是用聚合函數(shù),聚合函數(shù)就用來輸入多個數(shù)據(jù),輸出一個數(shù)據(jù)的。如count(id),sum(number),而每個聚合函數(shù)的輸入就是每一個多數(shù)據(jù)的單元格。

(4)例如我們執(zhí)行select name,sum(number) from test group by name,那么sum就對虛擬表3的number列的每個單元格進(jìn)行sum操作,例如對name為aa的那一行的number列執(zhí)行sum操作,即2+3,返回5,最后執(zhí)行結(jié)果如下:
在這里插入圖片描述
5)group by 多個字段該怎么理解呢:如group by name,number,我們可以把name和number 看成一個整體字段,以他們整體來進(jìn)行分組,如下圖所示:
在這里插入圖片描述
6)接下來就可以配合select和聚合函數(shù)進(jìn)行操作了。如執(zhí)行select name,sum(id) from test group by name,number,結(jié)果如下圖:
在這里插入圖片描述

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

mysql中g(shù)roup by用法是什么

mysql中g(shù)roup by用法是什么:mysql中g(shù)roup by的用法是配合聚合函數(shù),利用分組信息進(jìn)行統(tǒng)計,語句如select name,sum(id) from test group by name,number。推薦:《mysql視頻教程》先來看下表1,表名為test: 執(zhí)行如下SQL語句:SELECT name FROM test GR
推薦度:
標(biāo)簽: 用法 mysql mysql的
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top