久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中group by如何使用

165次閱讀
沒有評論

共計 1239 個字符,預計需要花費 4 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 mysql 中 group by 如何使用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

mysql 中 group by 的用法是配合聚合函數,利用分組信息進行統計,語句如“select name,sum(id) from test group by name,number”。

先來看下表 1,表名為 test:
mysql 中 group by 如何使用
執行如下 SQL 語句:

SELECT name FROM test GROUP BY name

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

1.FROM test:該句執行后,應該結果和表 1 一樣,就是原來的表。

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

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

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

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

(4)例如我們執行 select name,sum(number) from test group by name,那么 sum 就對虛擬表 3 的 number 列的每個單元格進行 sum 操作,例如對 name 為 aa 的那一行的 number 列執行 sum 操作,即 2 +3,返回 5,最后執行結果如下:
mysql 中 group by 如何使用
5)group by 多個字段該怎么理解呢:如 group by name,number,我們可以把 name 和 number 看成一個整體字段,以他們整體來進行分組,如下圖所示:
mysql 中 group by 如何使用
6)接下來就可以配合 select 和聚合函數進行操作了。如執行 select name,sum(id) from test group by name,number,結果如下圖:
mysql 中 group by 如何使用

看完了這篇文章,相信你對 mysql 中 group by 如何使用有了一定的了解,想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-18發表,共計1239字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 巴彦淖尔市| 福州市| 都昌县| 陕西省| 闽清县| 兴化市| 渑池县| 嵊州市| 盘山县| 营山县| 桂阳县| 霍州市| 荔波县| 右玉县| 讷河市| 大英县| 唐山市| 黄冈市| 西林县| 平谷区| 松桃| 鄂伦春自治旗| 兴安盟| 卢氏县| 光泽县| 平谷区| 平利县| 乌拉特中旗| 永胜县| 志丹县| 西和县| 沙湾县| 小金县| 汶川县| 开封县| 博野县| 商洛市| 新沂市| 弥勒县| 盘锦市| 繁昌县|