有一个学生表,有三个字段: name 、 course 、 score ,每一个学生都有三门课程,比如数学、语文、英语,写 sql 语句,查找出三门课程的成绩都大于 80 的学生。
每门课程只有一个成绩:
SELECT
NAME
FROM
student
GROUP BY
NAME
HAVING
min(score) > 80
每门课程有多个成绩(允许某次成绩小于80):
SELECT DISTINCT
(NAME)
FROM
student
WHERE
score > 80
GROUP BY
NAME
HAVING
COUNT(DISTINCT(course)) >= 3