例子
請考慮下表了解學生是否持有駕駛執照:
student_id |
full_name |
年齡 |
has_license |
---|---|---|---|
1 |
天空鎮 |
17 |
0 |
2 |
本·戴維斯 |
19 |
1 |
3 |
特拉維斯·蘋果 |
18 |
0 |
4 |
亞瑟·大衛 |
16 |
0 |
5 |
本傑明鎮 |
17 |
1 |
可以使用此處的代碼創建上述示例表。
基本用法
要查找該年齡段隻有一名學生的年齡:
SELECT age, COUNT(*)
FROM drivers_license
GROUP BY age
HAVING COUNT(*) = 1;
+------+----------+
| age | COUNT(*) |
+------+----------+
| 19 | 1 |
| 18 | 1 |
| 16 | 1 |
+------+----------+
請注意,年齡 17
不會返回,因為有兩名學生是 17
。
將 HAVING 與 WHERE 結合使用
要在執行分組之前包含 WHERE
子句以過濾掉具有 full_name='Sky Towner'
的學生:
SELECT age, COUNT(*)
FROM drivers_license
WHERE full_name <> 'Sky Towner'
GROUP BY age
HAVING COUNT(*) = 1;
+------+----------+
| age | COUNT(*) |
+------+----------+
| 19 | 1 |
| 18 | 1 |
| 16 | 1 |
| 17 | 1 |
+------+----------+
這次我們返回了 4 條記錄,因為在執行分組之前 'Sky Towner'
已被 WHERE
子句過濾掉。因此,在聚合/分組的記錄中,'Benjamin Town'
是唯一的 17
年份,因此滿足 HAVING
子句並返回年齡 17
。
相關用法
- MySQL HOUR()用法及代碼示例
- MySQL HEX方法用法及代碼示例
- MySQL HEX()用法及代碼示例
- MySQL HOUR方法用法及代碼示例
- MySQL Hour()用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
- MySQL RADIANS方法用法及代碼示例
- MySQL VARIANCE方法用法及代碼示例
- MySQL WEEK()用法及代碼示例
- MySQL TIME_FORMAT方法用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL weekofyear()用法及代碼示例
- MySQL Convert()用法及代碼示例
- MySQL IS NOT用法及代碼示例
- MySQL FROM_BASE64()用法及代碼示例
- MySQL LEFT方法用法及代碼示例
- MySQL UCASE方法用法及代碼示例
- MySQL PI()用法及代碼示例
- MySQL CONCAT()用法及代碼示例
- MySQL UPPER方法用法及代碼示例
- MySQL ATAN2方法用法及代碼示例
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | HAVING。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。