天天看點

MySQL資料庫 WHERE與HAVING的差別

總結自己面試遇到手寫sql題

一個SQL查詢出表fenshu, 國文課程的成績都大于80的學生姓名

如下一張表:
+--------+---------+---------+
| name   | kecheng | chengji |
+--------+---------+---------+
| 張三   | 國文    |      81 |
| 張三   | 數學    |      75 |
| 李四   | 國文    |      76 |
| 李四   | 數學    |      90 |
| 王五   | 國文    |      81 |
| 王五   | 數學    |     100 |
| 王五   | 英語    |      90 |
+--------+---------+---------+      
select kecheng, group_concat(name) from fenshu where chengji >80  group by kecheng having kecheng='國文';      
+---------+--------------------+
| kecheng | group_concat(name) |
+---------+--------------------+
| 國文    | 張三,王五          |
+---------+--------------------+