SQLステートメントを使用して、各コースでスコアが80を超える学生の名前をクエリします。テーブルのスタイルとデータは次のとおりです。
学生
name course score
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
結果は次のとおりです
。WangWu
解決する:
--not in
SELECT DISTINCT A.name
FROM student A
WHERE A.name not in(
SELECT Distinct S.name
FROM student S
WHERE S.score <80
)
name
王五
- 存在しない
SELECT DISTINCT A.name
From student A
where not exists (
SELECT 1
From student S
Where S.score <80
AND S.name =A.name
)
name
王五
--另外使用having函数的方法
select name
from student
group by name
having min(score) >= 80
;
name
王五
備考:テーブルとデータの
作成テーブルの作成student(name varchar(30)、course varchar(30)、score int);
学生の値に挿入( '张三'、 '语文'、81);
学生の値に挿入( '张Three '、' Mathematics '、75);
学生の値に挿入('李四 '、'语文 '、76);
学生の値に挿入('李四 '、'数学 '、90);
学生の値に挿入(' Wang Wu '、'语文 '、81);
生徒の値に挿入('王五 '、'数学 '、100);
生徒の値に挿入('王五 '、'英文 '、90);