表:TestScores 数据如下:
要求:查询每门课大于80分的学生名称
思路1:
-- 如果该同学的最小课程大于80分,那么该同学就是我们要找的。
-- 需使用group by分组,group by需要与having连用,而不能与where连用。
语句:
SELECT Name FROM testscores GROUP BY `Name` HAVING MIN(Score)>80
运行结果
思路2:
如果有一门课成绩小于或等于80,那么该学生就会被排除在外
-- NOT IN ----排除
-- DISTINCT 去重
语句:
SELECT DISTINCT `Name` FROM testscores WHERE `Name` NOT IN (SELECT `Name` FROM testscores WHERE score<=80);
查询结果: