for根据ID去重_如何使用 SQL 查找电影ID

SQL 是作为开发工程师、数据工程师必须要深入掌握的一项技能。我也一直在提升这部分的能力,从入门到精通。除了阅读一些 SQL 经典书籍,刷题也是一个不错的选择。于是,我将做过的题目与解法,汇总到这里,和大家一起学习。

SQL 练习题系列和「体验碎片」系列一样,会不定期进行更新。

本期有 2 道题。

有趣的电影

问题:编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。

79efef38-f116-eb11-8da9-e4434bdf6706.png
预期结果7cefef38-f116-eb11-8da9-e4434bdf6706.png

解法:

1.我们可以使用 id%2 = 1来确定奇数 id,也可以使用mod(id,2)=1 来判断是否为奇数;2.限制description <> 'boring' 找到不无聊的影片;3.使用order by对 rating 排序。

select  id,movie,description,ratingfrom cinema where id%2 = 1  and  description <> 'boring'order by rating desc

大的国家

问题:编写一个SQL查询,输出表中所有大国家的名称、人口和面积。

如果一个国家的面积超过 300 万平方公里,或者人口超过 2500 万,那么这个国家就是大国家。7fefef38-f116-eb11-8da9-e4434bdf6706.png
预期结果80efef38-f116-eb11-8da9-e4434bdf6706.png

解法1:

使用 WHERE 子句过滤面积超过 300 万平方公里或人口超过 2500 万,使用or 连接即可。

select name,population,areafrom World where population > 25000000 or area > 3000000

解法2:

or 可能会导致索引失效,全盘扫描。代替方案为 union 关键字,union 会去重,union all 不会自动去重

select name,population,area from World where population>25000000 unionselect name,population,area from World where area>3000000
87efef38-f116-eb11-8da9-e4434bdf6706.png

8cefef38-f116-eb11-8da9-e4434bdf6706.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值