當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


MySQL GROUP BY用法及代碼示例


MySQL 的 GROUP BY 子句允許您將列中的相同條目分組。 GROUP BY將為每組返回一條記錄。

用法

SELECT column_name(s)
FROM table_name
WHERE conditon
GROUP BY column_name
ORDER BY column_name;

例子

請考慮下表了解學生是否擁有駕駛執照:

student_id

full_name

年齡

has_license

1

天空鎮

17

0

2

本·戴維斯

19

1

3

特拉維斯·蘋果

18

0

4

亞瑟·大衛

16

0

5

本傑明鎮

17

1

可以使用此處的代碼創建上述示例表。

與聚合函數一起使用

我們可以將 GROUP BY COUNT MAX MIN SUM AVG 等聚合方法一起使用,以有效返回有關表的信息。

返回每個 age 的學生人數:

SELECT age, COUNT(*) 
FROM drivers_license
GROUP BY age;



+------+----------+
| age  | COUNT(*) |
+------+----------+
|   17 |        2 |
|   19 |        1 |
|   18 |        1 |
|   16 |        1 |
+------+----------+

要檢查有執照和無執照的學生的平均年齡:

SELECT has_license, AVG(age) 
FROM drivers_license
GROUP BY has_license;



+-------------+----------+
| has_license | AVG(age) |
+-------------+----------+
|           0 |  17.0000 |
|           1 |  18.0000 |
+-------------+----------+

無駕照學生的平均年齡為17,有駕照學生的平均年齡為18

要檢查有或沒有執照的學生的最小和最大年齡:

SELECT has_license, MIN(age), MAX(age) 
FROM drivers_license
GROUP BY has_license;



+-------------+----------+----------+
| has_license | MIN(age) | MAX(age) |
+-------------+----------+----------+
|           0 |       16 |       18 |
|           1 |       17 |       19 |
+-------------+----------+----------+

相關用法


注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | GROUP BY。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。