SQLZOO ——The nobel table can be used to practice more SUM and COUNT functions

1.Show the total number of prizes awarded.

SELECT COUNT(winner) 
FROM nobel

2.List each subject - just once

SELECT subject
FROM nobel
GROUP BY subject

3.Show the total number of prizes awarded for Physics.

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

4.For each subject show the subject and the number of prizes.

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

5.For each subject show the first year that the prize was awarded.

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

6.For each subject show the number of prizes awarded in the year 2000.

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

7.Show the number of different winners for each subject.

SELECT subject, COUNT(DISTINCT(winner))
FROM nobel
GROUP BY subject
--每个winner获奖会有重复,一定要记得DISTINCT之后再COUNT

8.For each subject show how many years have had prizes awarded.

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

9.Show the years in which three prizes were given for Physics.

SELECT yr
FROM nobel
WHERE subject='Physics'
GROUP BY yr
HAVING COUNT(winner)=3
--筛选的是人获得了三次奖项,分组与select要一致

10.Show winners who have won more than once.

SELECT winner
FROM nobel
GROUP BY winner
HAVING COUNT(*) > 1
--筛选要有对应的分组条件存在

11.Show winners who have won more than one subject

SELECT winner
FROM nobel
GROUP BY winner
HAVING COUNT(DISTINCT(subject)) > 1
--一个人可以获得多种奖项,所以一定要DISTINCT之后再COUNT

12.Show the year and subject where 3 prizes were given. Show only years 2000 onwards.

SELECT yr, subject
FROM nobel
WHERE yr>=2000
GROUP BY yr, subject 
HAVING COUNT(*)=3
--删选的是某个奖项获得三次以上的年份
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值