前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sqlzoo练习3

sqlzoo练习3

作者头像
皮大大
发布2021-03-02 16:31:33
4140
发布2021-03-02 16:31:33
举报
文章被收录于专栏:机器学习/数据可视化

Sqlzoo 练习3

We continue practicing simple SQL queries on a single table.This tutorial is concerned with a table of Nobel prize winners:

select子句顺序
  1. select
  2. from
  3. where
  4. group by
  5. having
  6. order by(desc是降序)

练习

  1. Change the query shown so that it displays Nobel prizes for 1950.
代码语言:javascript
复制
SELECT yr, subject, winner
  FROM nobel
 WHERE yr = 1950;
  1. Show who won the 1962 prize for Literature.
代码语言:javascript
复制
SELECT winner
FROM nobel
WHERE yr = 1962
AND subject = 'Literature';
  1. Show the year and subject that won ‘Albert Einstein’ his prize.
代码语言:javascript
复制
select yr, subject 
from nobel
where winner = 'Albert Einstein';
  1. Give the name of the ‘Peace’ winners since the year 2000, including 2000.
代码语言:javascript
复制
select winner
from nobel
where subject = 'Peace'
and yr >= 2000;
  1. Show all details (yr, subject, winner) of the Literature prize winners for 1980 to 1989 inclusive.
代码语言:javascript
复制
select yr, subject, winner 
from nobel
where subject='Literature' 
and (yr between 1980 and 1989);
  1. Show all details of the presidential winners:Theodore Roosevelt、Woodrow Wilson、Jimmy Carter、Barack Obama
代码语言:javascript
复制
select * 
from nobel
where winner in ('Theodore Roosevelt','Woodrow Wilson','Jimmy Carter','Barack Obama');
  1. Show the winners with first name John
代码语言:javascript
复制
select winner
from nobel
where winner like 'John%';   -- 使用单引号
  1. Show the year, subject, and name of Physics winners for 1980 together with the Chemistry winners for 1984.
代码语言:javascript
复制
select yr, subject, winner 
from nobel
where (yr = 1980 and subject = 'Physics')
or (yr = 1984 and subject = 'Chemistry');
  1. Show the year, subject, and name of winners for 1980 excluding Chemistry and Medicine
代码语言:javascript
复制
select yr, subject, winner
from nobel
where yr = 1980 
and subject not in ('Chemistry', 'Medicine');
  1. Show year, subject, and name of people who won a ‘Medicine’ prize in an early year (before 1910, not including 1910) together with winners of a ‘Literature’ prize in a later year (after 2004, including 2004)
代码语言:javascript
复制
select yr, subject, winner
from nobel
where (subject = 'Medicine' and yr < 1910) 
or (subject = 'Literature' and yr >= 2004);

11.Find all details of the prize won by PETER GRÜNBERG

代码语言:javascript
复制
select yr, subject, winner
from nobel
where winner like 'PETER%erg';  -- 使用通配符来解决
  1. Find all details of the prize won by EUGENE O’NEILL
代码语言:javascript
复制
select yr, subject, winner
from nobel
where winner like 'EU%ILL'
  1. List the winners, year and subject where the winner starts with Sir. Show the the most recent first, then by name order.
代码语言:javascript
复制
select winner,yr, subject
from nobel
where winner like 'Sir%'
order by yr desc, winner asc;  -- 指定时间的降序,名字的升序
  1. The expression subject IN (‘Chemistry’,‘Physics’) can be used as a value - it will be 0 or 1:满足条件是1,否则是0 Show the 1984 winners and subject ordered by subject and winner name; but list Chemistry and Physics last.
  • 1984年获奖
  • 学科与名字排序
  • 化学和物理最后排序(满足条件为1,排在后面)
代码语言:javascript
复制
SELECT winner, subject
FROM nobel
WHERE yr=1984
ORDER BY subject IN ('Physics','Chemistry'),subject,winner
代码语言:javascript
复制
select winner, subject
from nobel
where yr=1984
order by 
case when subject in ('Physics','Chemistry') then 1 else 0 end,   -- 满足when语句为1,否则是0
subject, winner;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-1-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • select子句顺序
  • 练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档