SQL 查询某门课程及格的总人数以及不及格的总人数以及没成绩的人数

创建表SQL: sql CREATE TABLE test_score ( class_id VARCHAR2 (2 0), student_id VARCHAR2 (2 0), score NUMBER );
插入数据SQL: sql INSERT INTO test_score VALUES ('C07 ', 1 001 , 5 0); INSERT INTO test_score VALUES ('C07 ', 1 002 , 7 2 ); INSERT INTO test_score VALUES ('C07 ', 1 003 , 8 5 ); INSERT INTO test_score VALUES ('C07 ', 1 004 , 9 1 ); INSERT INTO test_score VALUES ('C07 ', 1 005 , 4 8 ); INSERT INTO test_score VALUES ('C07 ', 1 006 , 7 9 ); INSERT INTO test_score VALUES ('C07 ', 1 007 , NULL);
查询记录SQL: sql SELECT t., rowid FROM test_score t;
查询及格、不及格、无成绩人数SQL: sql SELECT class_id, COUNT(DISTINCT CASE WHEN score < 6>= 6 0 THEN student_id END) AS s2 , COUNT(DISTINCT CASE WHEN score IS NULL THEN student_id END) AS s3 FROM test_score t GROUP BY class_id;
及格分数线:6 0分。

及格人数:s2 不及格人数:s1 无成绩人数:s3
通过这个查询,得到课程成绩分布情况。

实际应用中可调整分数线,扩展查询功能。

SQL语句 统计各个学生的不及格科目数量及不及格率 ,2条语句

上周看这段SQL。
写的还行。

创建表是标准的。
插入数据也正常。

查询所有数据。
没问题。

计算不及格科目数量。
用UNION ALL合起来。
然后分组计数。
这个思路对。

计算不及格率。
外面一层统计总人数。
里面每一科分别统计不及格人数。
然后算百分比。
这个也行。

结果图看了。
数字对得上。

算了。
你看着办。

SQL查询出有成绩不及格的学生的学号,姓名,课程名。

对,就是这个问题。
之前遇到过。

查询不及格学生,简单。
就是:
sql SELECT s.student_id, s.name, c.course_name FROM tbStudent s JOIN tbScore sc ON s.student_id = sc.student_id JOIN tbCourse c ON sc.course_id = c.course_id WHERE sc.score < 6> 这招叫多表关联。
注意,成绩小于6 0分才是不及格。
字段名得对上,表名也得对。
你数据库里怎么设计的,就怎么写。

自己看,有问题再问。