首页 > 数据库技术 > 详细

sqlzoo练习系列(九)——群组函数之Nobel表

时间:2020-10-20 11:08:44      阅读:37      评论:0      收藏:0      [点我收藏+]

 【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

技术分享图片

sqlzoo练习系列(九)——群组函数之Nobel表

原文:https://www.cnblogs.com/tuzinn/p/13844927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!