[SQL25]各コースでスコアが80以上の学生の名前をクエリします

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);

 

 

 

おすすめ

転載: blog.csdn.net/debimeng/article/details/104215628