• SQL问题(面试题)


    面试完后在本地mysql数据库中重现了该问题

    数据表stuscore信息如下:

    1、计算每个人的总成绩,并且排名(要求显示字段 学号 姓名 总成绩)
    SELECT stuid AS 学号,NAME AS 姓名, SUM(score) AS 总成绩
    FROM stuscore GROUP BY stuid ORDER BY 总成绩 DESC

    2、计算每个人单科的最高成绩(要求显示字段 学号、姓名、课程、最高成绩)
    select stuid AS 学号,NAME AS 姓名,SUBJECT AS 课程,score AS 最高成绩
    from stuscore a where score=(select max(score) from stuscore where subject=a.subject)

    3、统计如下:课程 不及格(0-59)个 良(60-80)个 优(81-100)个
    SELECT subject AS 课程,count(CASE WHEN SCORE<60 then 1 END) AS "不及格(0-59)个",
    count(CASE WHEN SCORE BETWEEN 60 AND 80 then 1 END) AS "良(81-100)个",
    count(CASE WHEN SCORE BETWEEN 81 AND 100 then 1 END) AS "优(81-100)个"
    FROM stuscore GROUP BY `subject`

    4、统计如下:课程 张三分数 李四分数 王五分数
    SELECT subject AS 课程,SUM(CASE WHEN `name` = "张三" then score ELSE 0 END) AS "张三分数",
    SUM(CASE WHEN `name` = "李四" then score END) AS "李四分数",
    SUM(CASE WHEN `name` = "王五" then score END) AS "王五分数"
    FROM stuscore GROUP BY `subject`

  • 相关阅读:
    GIT(分布式版本控制系统)
    mysql入门
    百度云上传下载会出现乱码,和丢失数据,.h,.so都会出现,暂未发现丢包现象
    qte搭建
    移植tslib
    网页移植前的问题(包括触摸屏)
    网页移植开发板
    开发板boa移植
    dump工具下,资料的备份与还原
    python-时间模块
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/6509612.html
Copyright © 2020-2023  润新知