zoukankan      html  css  js  c++  java
  • 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`

  • 相关阅读:
    浅谈工业无线技术之天线
    防护等级
    PROFINET如何实现实时性
    2020,我又回来了
    关于ReentrantLock和Condition的用法
    当你在试衣间试衣服,请你务必想起wait()与notify()
    用生活例子来解释Java synchronized块
    关于textview显示特殊符号居中的问题
    扯一扯我的2016
    国庆的这6天
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/6509612.html
Copyright © 2011-2022 走看看