鍍金池/ 教程/ 數(shù)據(jù)庫/ MySQL Group By 子句
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類型
MySQL 插入查詢
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報
MySQL 選擇數(shù)據(jù)庫
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語法

MySQL Group By 子句

可以使用 GROUP BY 子句對列中的值進(jìn)行分組。如果你愿意,還可以對列實施某種計算??梢詫Ψ纸M的列使用COUNT、SUM以及AVG等函數(shù)。

為了理解 GROUP BY 子句,考慮表 employee_tbl,它包含如下記錄:

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
|    1 | John | 2007-01-24 |                250 |
|    2 | Ram  | 2007-05-27 |                220 |
|    3 | Jack | 2007-05-06 |                170 |
|    3 | Jack | 2007-04-06 |                100 |
|    4 | Jill | 2007-04-06 |                220 |
|    5 | Zara | 2007-06-06 |                300 |
|    5 | Zara | 2007-02-06 |                350 |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

現(xiàn)在,根據(jù)上面這張表,我們來計算一下每位員工的工作天數(shù)。

如果像下面這樣寫 SQL 查詢,那么將得到下列結(jié)果:

mysql> SELECT COUNT(*) FROM employee_tbl;
+---------------------------+
| COUNT(*)                  |
+---------------------------+
| 7                         |
+---------------------------+

但這并不符合預(yù)期,我們希望的是輸出每位員工輸入的頁數(shù)??梢越Y(jié)合使用聚合函數(shù)與 GROUP BY 子句,如下所示:

mysql> SELECT name, COUNT(*)
    -> FROM   employee_tbl 
    -> GROUP BY name;
+------+----------+
| name | COUNT(*) |
+------+----------+
| Jack |        2 |
| Jill |        1 |
| John |        1 |
| Ram  |        1 |
| Zara |        2 |
+------+----------+
5 rows in set (0.04 sec)

以后,我們還將介紹更多 GROUP BY 與 SUM、AVG 等函數(shù)相結(jié)合的用法。

上一篇:MySQL RAND 函數(shù)下一篇:MySQL 匯報