快乐SQL做题 - Day3

Hello!!今天是DAY 3啦~一起来看看今天有什么题目吧~

闯关开始啦

关卡1-删除重复的电子邮箱

要求:

执行 SQL 之后,输出是整个 Person表。

使用 delete 语句。

思路:

我们要用delete语句删除重复的电子邮箱,我们要先做一个自连接筛选出重复的电子邮箱

那应该如何才能筛选出这样的电子邮箱呢。

在DELETE官方文档中,给出了这一用法,比如下面这个DELETE语句👇

DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;

这种DELETE方式很陌生,竟然和SELETE的写法类似。它涉及到t1和t2两张表,DELETE t1表示要删除t1的一些记录,具体删哪些,就看WHERE条件,满足就删;

这里删的是t1表中,跟t2匹配不上的那些记录。

所以,官方sql中,DELETE p1就表示从p1表中删除满足WHERE条件的记录

最后,我们创建一个自连接,where限制的是他们的email是一样的,然后第二个表的id要大于第一个表的id

delete a from Person as a, Person as b

where a.Id < b.Id

and a.Email = b.Email

恭喜过关!进入下一关!


关卡2 -上升的温度

思路:

这道题也是对比前后,那我们自然要创造自连接

然后让一边的temperature大于另一边

让日期有1天的差距

就可以啦

一开始我写的是让id有1的差距,但是id有1的差距不代表,日期差距一天~对吧!

所以我们要用一个专门比较日期的函数 DATEDIFF来比较两个日期类型的值。可以这么理解:放在前面的那个值代表被减数,中间是减数,结尾是差。

select b.id as Id from Weather a, weather b

where a.Temperature < b.Temperature

and DATEDIFF(b.recordDate, a.recordDate) = 1

恭喜过关!进入下一关!


关卡3 - 行程和用户

这道题我们按照他的要求一步一步来就可以了~

首先,我们要有一个日期,然后我们要计算cancellation rate

那么这个rate怎么计算呢,他也说了,是cancel的订单数➗总订单数

那么我们首先要计算Status 不等于 complete的订单数

那我们就写一个if statement,如果他是complete,就是0,如果不是就是1

然后sum起来,就能得出所有的不等于 complete的订单数

这个思路非常好~要记住哦!

然后➗完我们就在外围加一个round函数,跟python一样,语法是round(对象,小数点几位)。

第二个难点是join的时候要让什么等于什么呢

是U.Users_Id = T.Client_Id

为什么不需要考虑driver呢?

因为结合日常生活,打车订单都是由乘客发起生成的。所以就不需要考虑driver ID

答案:

Select T.Request_at as 'Day', Round(SUM(IF(T.Status = 'completed',0,1))/count(T.Status),2) as 'Cancellation Rate'

From Trips T

Inner join Users U

on U.Users_Id = T.Client_Id

Where Banned like 'No'

And T.Request_at BETWEEN '2013-10-01' AND '2013-10-03'

Group by T.Request_at

恭喜过关!进入下一关!


关卡4 - 大的国家

思路:

好吧这道题有点水,有点简单

但我第一次提交还是错了,因为,,,,,,

我没看清题目,把or写成了and!!!

总结经验:傻瓜一枚

select name, population, area from World

where population > 25000000

or area > 3000000

恭喜过关!进入下一关!

关卡5 - 超过5名学生的课

这道题,首先我想到的就是count(distinct 什么什么)>4,但是千万要记得,如果不是要在select语句里面用count,那就要有group by 然后在having 后面加,要不然就有error

所以我们就先group by class,再看看每个class 里面distinct 的学生

就大功告成啦

select class from courses

group by class

having count(distinct student)>5

恭喜过关!

今天学到的新知识:DELETE t1表示要删除t1的一些记录,具体删哪些,就看WHERE条件,满足就删;专门比较日期的函数 DATEDIFF可以比较两个日期类型的值,放在前面的那个值代表被减数,中间是减数,结尾是差;count在下面用的话要在group by 后面加having用;看清题目如果是或,就where……or……,;round跟python的用法一样;if也跟python一样,语法是if(语句,语句为T是的输出,语句为F时的输出),

明天继续闯关~yay ~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336

推荐阅读更多精彩内容

  • Hello!!我回归啦~ 今天开始继续刷SQL的题目~ 争取这个寒假可以在SQL有一点点进步! 闯关开始啦 关卡1...
    认真学习的兔子阅读 295评论 0 1
  • 在互联网行业从事数据分析,要学一些必备的技能,比如SQL/HIVE。因此我将之前学习的SQL知识资源进行统一整理一...
    年少轻狂不能用来挥霍阅读 981评论 0 0
  • Hello!!今天是DAY 2啦~一起来看看今天有什么题目吧~ 闯关开始啦 关卡1-超过经理收入的员工[https...
    认真学习的兔子阅读 225评论 0 2
  • 1 安装MySQL 进入MySQL官网,登录 如何在Macbook上安装MySQL_百度经验 我之后改了个,怕忘记...
    乔大叶_803e阅读 474评论 0 0
  • 目录 简介 在Android中存储数据有时会用到数据库,Android给我们提供了 一系列的API来操作数据库,非...
    慕涵盛华阅读 993评论 1 2