天天看点

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) |
+---------+--------------------+
| 语文    | 张三,王五          |
+---------+--------------------+