日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL使用GROUPBY分組查詢

在 MySQL 中,
GROUP BY 關(guān)鍵字可以根據(jù)一個或多個字段對查詢結(jié)果進(jìn)行分組。

專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)金塔免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

使用 GROUP BY 關(guān)鍵字的語法格式如下:

GROUP BY  <字段名>

其中,“字段名”表示需要分組的字段名稱,多個字段時用逗號隔開。

GROUP BY單獨(dú)使用

單獨(dú)使用 GROUP BY 關(guān)鍵字時,查詢結(jié)果會只顯示每個分組的第一條記錄。

例 1

下面根據(jù) tb_students_info 表中的 sex 字段進(jìn)行分組查詢,SQL 語句和運(yùn)行結(jié)果如下:

mysql> SELECT `name`,`sex` FROM tb_students_info 
    -> GROUP BY sex;
+-------+------+
| name  | sex  |
+-------+------+
| Henry | 女   |
| Dany  | 男   |
+-------+------+
2 rows in set (0.01 sec)

結(jié)果中只顯示了兩條記錄,這兩條記錄的 sex 字段的值分別為“女”和“男”。

GROUP BY 與 GROUP_CONCAT() 

GROUP BY 關(guān)鍵字可以和
GROUP_CONCAT() 函數(shù)一起使用。GROUP_CONCAT() 函數(shù)會把每個分組的字段值都顯示出來。

例 2

下面根據(jù) tb_students_info 表中的 sex 字段進(jìn)行分組查詢,使用 GROUP_CONCAT() 函數(shù)將每個分組的 name 字段的值都顯示出來。SQL 語句和運(yùn)行結(jié)果如下:

mysql> SELECT `sex`, GROUP_CONCAT(name) FROM tb_students_info 
    -> GROUP BY sex;
+------+----------------------------+
| sex  | GROUP_CONCAT(name)         |
+------+----------------------------+
| 女   | Henry,Jim,John,Thomas,Tom  |
| 男   | Dany,Green,Jane,Lily,Susan |
+------+----------------------------+
2 rows in set (0.00 sec)

由結(jié)果可以看到,查詢結(jié)果分為兩組,sex 字段值為“女”的是一組,值為“男”的是一組,且每組的學(xué)生姓名都顯示出來了。

例 3

下面根據(jù) tb_students_info 表中的 age 和 sex 字段進(jìn)行分組查詢。SQL 語句和運(yùn)行結(jié)果如下:

mysql> SELECT age,sex,GROUP_CONCAT(name) FROM tb_students_info 
    -> GROUP BY age,sex;
+------+------+--------------------+
| age  | sex  | GROUP_CONCAT(name) |
+------+------+--------------------+
|   21 | 女   | John               |
|   22 | 女   | Thomas             |
|   22 | 男   | Jane,Lily          |
|   23 | 女   | Henry,Tom          |
|   23 | 男   | Green,Susan        |
|   24 | 女   | Jim                |
|   25 | 男   | Dany               |
+------+------+--------------------+
7 rows in set (0.00 sec)

上面實例在分組過程中,先按照 age 字段進(jìn)行分組,當(dāng) age 字段值相等時,再把 age 字段值相等的記錄按照 sex 字段進(jìn)行分組。

 

多個字段分組查詢時,會先按照第一個字段進(jìn)行分組。如果第一個字段中有相同的值,MySQL 才會按照第二個字段進(jìn)行分組。如果第一個字段中的數(shù)據(jù)都是唯一的,那么 MySQL 將不再對第二個字段進(jìn)行分組。

GROUP BY 與聚合函數(shù)

在數(shù)據(jù)統(tǒng)計時,GROUP BY 關(guān)鍵字經(jīng)常和聚合函數(shù)一起使用。

聚合函數(shù)包括 COUNT(),SUM(),AVG(),MAX() 和 MIN()。其中,COUNT() 用來統(tǒng)計記錄的條數(shù);SUM() 用來計算字段值的總和;AVG() 用來計算字段值的平均值;MAX() 用來查詢字段的最大值;MIN() 用來查詢字段的最小值。

關(guān)于聚合函數(shù)的詳細(xì)內(nèi)容可以閱讀學(xué)習(xí)《MySQL函數(shù)大全》一節(jié)。

例 4

下面根據(jù) tb_students_info 表的 sex 字段進(jìn)行分組查詢,使用 COUNT() 函數(shù)計算每一組的記錄數(shù)。SQL 語句和運(yùn)行結(jié)果如下:

mysql> SELECT sex,COUNT(sex) FROM tb_students_info 
    -> GROUP BY sex;
+------+------------+
| sex  | COUNT(sex) |
+------+------------+
| 女   |          5 |
| 男   |          5 |
+------+------------+
2 rows in set (0.00 sec)

結(jié)果顯示,sex 字段值為“女”的記錄是一組,有 5 條記錄;sex 字段值為“男”的記錄是一組,有 5 條記錄。

GROUP BY 與 WITH ROLLUP

WITH POLLUP 關(guān)鍵字用來在所有記錄的最后加上一條記錄,這條記錄是上面所有記錄的總和,即統(tǒng)計記錄數(shù)量。

例 5

下面根據(jù) tb_students_info 表中的 sex 字段進(jìn)行分組查詢,并使用 WITH ROLLUP 顯示記錄的總和。

mysql> SELECT sex,GROUP_CONCAT(name) FROM tb_students_info 
    ->GROUP BY sex WITH ROLLUP;
+------+------------------------------------------------------+
| sex  | GROUP_CONCAT(name)                                   |
+------+------------------------------------------------------+
| 女   | Henry,Jim,John,Thomas,Tom                            |
| 男   | Dany,Green,Jane,Lily,Susan                           |
| NULL | Henry,Jim,John,Thomas,Tom,Dany,Green,Jane,Lily,Susan |
+------+------------------------------------------------------+
3 rows in set (0.00 sec)

查詢結(jié)果顯示,GROUP_CONCAT(name) 顯示了每個分組的 name 字段值。同時,最后一條記錄的 GROUP_CONCAT(name) 字段的值剛好是上面分組 name 字段值的總和。


本文名稱:創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL使用GROUPBY分組查詢
網(wǎng)頁URL:http://www.5511xx.com/article/dhjjicd.html