From b44aaf19dc06a9414b1f53a04840b90cc35544ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E5=BB=BA=E9=94=8B?= <467466356@qq.com> Date: Thu, 22 Sep 2022 11:02:02 +0800 Subject: [PATCH] =?UTF-8?q?2022-09-22=E7=AC=AC=E5=9B=9B=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-22\344\275\234\344\270\232.sql" | 46 +++++++++++++++++++ .../2022-9-22\347\254\224\350\256\260.txt" | 15 ++++++ 2 files changed, 61 insertions(+) create mode 100644 "39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\344\275\234\344\270\232.sql" create mode 100644 "39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\347\254\224\350\256\260.txt" diff --git "a/39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\344\275\234\344\270\232.sql" "b/39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\344\275\234\344\270\232.sql" new file mode 100644 index 0000000..6d49b53 --- /dev/null +++ "b/39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\344\275\234\344\270\232.sql" @@ -0,0 +1,46 @@ +use TEST04; +select * from Student; +select * from Course; +select * from Teacher; +select * from SC; +--13. 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 +select st.SId,st.Sname 名字,sc1.score 语文,sc2.score 数学,sc3.score 英语,平均成绩 from Student St +left join SC sc1 on st.SId=SC1.SId and SC1.CId='01' +left join SC sc2 on st.SId=SC2.SId and SC2.CId='02' +left join SC sc3 on st.SId=SC3.SId and SC3.CId='03' +left join ( +select st.SId,AVG(score) 平均成绩 from Student st +left join SC on st.SId=sc.SId +group by st.sid +)a +on st.SId=a.SId +order by 平均成绩 desc + + +select a1.*,avg1 from sc a1 left join +(select sid,avg(score) as avg1 from sc group by sid +)b on a1.SId=b.sid + order by avg1 desc +--14. 查询各科成绩最高分、最低分和平均分: +--以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 +--及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90 +--要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列 +SELECT co.cid AS 课程id ,co.Cname AS 课程,MAX(sc.score) AS 最高分, MIN(sc.score)AS 最低分 ,AVG(sc.score) AS 平均分 , + SUM(CASE WHEN sc.score >= 60 THEN 1 ELSE 0 END)/COUNT(sc.[SId]) AS 及格率, + SUM(CASE WHEN sc.score >= 70 AND sc.score< 80 THEN 1 ELSE 0 END)/COUNT(sc.[SId]) AS 中等率, + SUM(CASE WHEN sc.score >= 80 AND sc.score<90 THEN 1 ELSE 0 END)/COUNT(sc.[SId]) AS 优良率, + SUM(CASE WHEN sc.score >= 90 THEN 1 ELSE 0 END)/COUNT(sc.[SId]) AS 优秀率 +FROM Course co +inner join SC on co.CId=sc.CId +group by co.cid ,co.Cname + +--15. 按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺 +select *,RANK() over(partition by cid order by score desc) rank from sc +--15.1 按各科成绩进行排序,并显示排名, Score 重复时合并名次 +select *,DENSE_RANK() over(partition by cid order by score desc) rank from sc +--16. 查询学生的总成绩,并进行排名,总分重复时保留名次空缺 +select sid,sum(score),rank() over(partition by sid order by sum(score) desc) rank from sc +group by sid +--16.1 查询学生的总成绩,并进行排名,总分重复时不保留名次空缺 +select sid,sum(score),ROW_NUMBER() over(partition by sid order by sum(score)desc) rank from sc +group by sid \ No newline at end of file diff --git "a/39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\347\254\224\350\256\260.txt" "b/39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\347\254\224\350\256\260.txt" new file mode 100644 index 0000000..bee2db0 --- /dev/null +++ "b/39\351\231\206\345\273\272\351\224\213/2022-09-22\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/2022-9-22\347\254\224\350\256\260.txt" @@ -0,0 +1,15 @@ +row_number 涓嶈烦璺冨紡鎺掑簭 +80 1 +78 2 +78 3 +60 4 +rank 璺宠穬寮忔帓搴 +80 1 +78 2 +78 2 +60 4 +danse_rank 杩炵画寮忔帓搴 +80 1 +78 2 +78 2 +60 3 \ No newline at end of file -- Gitee