我要实现sql语句,查找两门以上课程不及格的学生的学号,在选修表sc中有score这个分数的属性,那where部分写 count(score<60)>=2,count函数里面这么写可以吗
时间: 2024-02-22 22:57:12 浏览: 76
1.查询每门课程的【及格】学生数.sql
在 `WHERE` 子句中不能直接使用聚合函数,但是可以使用 `HAVING` 子句来过滤聚合结果。因此,你可以使用以下 SQL 语句来查找选修表 `sc` 中有两门以上不及格课程的学生学号:
```sql
SELECT sno
FROM sc
WHERE score < 60
GROUP BY sno
HAVING COUNT(*) >= 2;
```
以上语句中,`WHERE` 子句中筛选出所有不及格的记录,然后使用 `GROUP BY` 子句将结果按学号进行分组,最后使用 `HAVING` 子句过滤出选修了两门以上不及格课程的学生学号。
阅读全文