zoukankan      html  css  js  c++  java
  • sqlzoo练习系列(九)——群组函数之Nobel表

     【Tips】

    • sqlzoo官网链接:https://sqlzoo.net/wiki/SQL_Tutorial/zh
    • 每个系列开头介绍所用表及其信息
    • 每道题均测试通过,含有题目描述、代码和结果
    • 题目为自己简写,最好在官网查看具体题目
    • 部分测试结果不完整,仅为一部分截图

    群组函数之Nobel表练习链接:https://sqlzoo.net/wiki/The_nobel_table_can_be_used_to_practice_more_SUM_and_COUNT_functions./zh

    所用的表nobel

    • yr:获奖年份
    • subject:获奖类别
    • winner:获奖者

    1.一共颁发了多少个奖

    SELECT COUNT(subject) FROM nobel

    2.列出每一个奖项,只列一次

    SELECT DISTINCT subject
    FROM nobel

    3.找出物理奖的总颁发次数

    SELECT COUNT(subject)
    FROM nobel
    WHERE subject='Physics'      

    4.对每一个奖项,列出其颁发次数

    SELECT subject,COUNT(subject)
    FROM nobel
    GROUP BY subject

    5.对每一个奖项,列出首次颁发的年份

    SELECT subject,MIN(yr)
    FROM nobel
    GROUP BY subject    

    6.对每一个奖项,列出2000年颁发的数目

    SELECT subject,COUNT(subject)
    FROM nobel
    WHERE yr=2000
    GROUP BY subject

    7.对每一个奖项,列出有多少个不同的得奖者

    SELECT subject,COUNT(DISTINCT(winner))
    FROM nobel
    GROUP BY subject

    8.对每一个奖项,列出有多少年曾颁发过

    SELECT subject,COUNT(DISTINCT(yr))
    FROM nobel
    GROUP BY subject

    9.列出哪些年同年有3个物理奖的获得者

    SELECT yr
    FROM nobel
    WHERE subject='Physics'
    GROUP BY yr
    HAVING COUNT(winner)=3

    10.列出谁得奖多于一次

    SELECT winner
    FROM nobel
    GROUP BY winner
    HAVING COUNT(winner)>1

    11.列出谁获得多于一个奖项

    SELECT winner
    FROM nobel
    GROUP BY winner
    HAVING COUNT(DISTINCT(subject))>1
    --奖项去重

    12.哪年哪个奖项,是同一奖项颁发给3个人。只列出2000年及以后的资料

    SELECT yr,subject
    FROM nobel
    WHERE yr>=2000
    GROUP BY yr,subject
    HAVING COUNT(winner)=3

  • 相关阅读:
    MVC中的helper标签
    自适应网页设计(Responsive Web Design)
    网站设计的最简主义
    Windows Forms数据绑定技术
    [C#]写自己的类库
    C#数据库连接字符串
    CSS float属性
    CSS之UL
    NET教程:MVC4使用Bundling,CSS中图片路径问题
    ASP.net 中Get和Post的用法
  • 原文地址:https://www.cnblogs.com/tuzinn/p/13844927.html
Copyright © 2011-2022 走看看