欢迎使用CSDN-markdown编辑器

更多请参照

表:stuscore

姓名name课程subject分数score学号stuid
张三数学891
张三语文801
张三英语701
李四数学902
李四语文702
李四数学802

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

SELECT
    NAME 姓名,
    SUM(score) 总成绩
FROM
    stuscore
GROUP BY
    NAME
ORDER BY
    总成绩 DESC

效果图:

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

效果图:

stuidnamesubjectscore
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
    stuscore
GROUP BY
    stuid,
    NAME
ORDER BY
    总分;

效果图:

学号姓名语文数学英语总分平均分
1张三80897023979.6667
2李四70908024080.0000
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值