SQL练习9月10

来源:互联网 发布:四川广电网络套餐介绍 编辑:程序博客网 时间:2024/04/29 00:14
-- 给出诺贝尔奖获奖总人数
SELECT COUNT(*) FROM nobel;


-- 给出诺贝尔物理奖获奖次数
SELECT COUNT(*) FROM nobel  WHERE SUBJECT='Physics';


-- 显示每个奖项获奖总次数
SELECT n.SUBJECT,COUNT(SUBJECT) FROM nobel n GROUP BY n.SUBJECT;


-- 显示每个奖项第一次获得该奖的年份
SELECT n.SUBJECT,MIN(yr) FROM nobel n GROUP BY n.SUBJECT ;


-- 显示每个奖项在2000年获奖的人数


SELECT n.SUBJECT, COUNT(winner)  FROM nobel n WHERE yr=2000 GROUP BY n.SUBJECT;


-- 显示每个奖项不同获奖者人数
SELECT * FROM nobel;
SELECT n.SUBJECT , COUNT(DISTINCT n.winner) FROM nobel n  GROUP BY n.SUBJECT  ;


-- 显示每个奖项有多少年获奖
SELECT SUBJECT,COUNT(DISTINCT yr) FROM nobel GROUP BY SUBJECT;


-- 显示当年有三个物理奖的年份
SELECT yr,COUNT(winner) FROM nobel WHERE SUBJECT='Physics'
GROUP BY yr HAVING COUNT(winner)=3;


-- 显示得奖超过一次的获奖者
SELECT winner FROM nobel GROUP BY winner HAVING COUNT(SUBJECT)>1


-- 显示得到多个奖项的获奖者
SELECT winner FROM nobel GROUP BY winner HAVING COUNT(DISTINCT SUBJECT)>1


-- 显示2000年及以后,有三个人获得同一奖项的年份及奖项
SELECT yr,SUBJECT  FROM nobel WHERE yr>=2000 GROUP BY yr,SUBJECT HAVING COUNT(winner)=3;
 
0 0