欢迎使用CSDN-markdown编辑器

来源:互联网 发布:网络传播的作用 编辑:程序博客网 时间:2024/05/07 17:55

更多请参照

表:stuscore

姓名name 课程subject 分数score 学号stuid 张三 数学 89 1 张三 语文 80 1 张三 英语 70 1 李四 数学 90 2 李四 语文 70 2 李四 数学 80 2

1. 计算每个人的总成绩并排名

SELECT    NAME 姓名,    SUM(score) 总成绩FROM    stuscoreGROUP BY    NAMEORDER BY    总成绩 DESC

效果图:

姓名 总成绩 李四 240 张三 239
  1. 列出各门课程最好的学生(要求显示字段: 学号、姓名、科目、成绩)
SELECT    t1.stuid,    t1. NAME,    t1. SUBJECT,    t1.scoreFROM    stuscore t1,    (        SELECT            SUBJECT,            MAX(score) AS maxscore        FROM            stuscore        GROUP BY            SUBJECT    ) t2WHERE    t1. SUBJECT = t2. SUBJECTAND t1.score = t2.maxscore;

效果图:

stuid name subject score 1 张三 语文 80 2 李四 数学 90 2 李四 英语 80

3.统计如下:学号、姓名、语文、数学、英语、总分、平均分

 SELECT    stuid 学号,    NAME 姓名,    sum(        CASE        WHEN SUBJECT = '语文' THEN            score        ELSE            0        END    ) AS 语文,    sum(        CASE        WHEN SUBJECT = '数学' THEN            score        ELSE            0        END    ) AS 数学,    sum(        CASE        WHEN SUBJECT = '英语' THEN            score        ELSE            0        END    ) AS 英语,    SUM(score) 总分,    avg(score) 平均分FROM    stuscoreGROUP BY    stuid,    NAMEORDER BY    总分;

效果图:

学号 姓名 语文 数学 英语 总分 平均分 1 张三 80 89 70 239 79.6667 2 李四 70 90 80 240 80.0000
原创粉丝点击