快乐SQL做题 - Day8

今天降温得好厉害,居然居然接近0度了,不禁让人想钻进被窝,打开投影仪看个电影~~这几天真的超想看电影,想重温高中看的傲慢与偏见和时空恋旅人。说到电影,前几天跟羊小羊一起看的利刃出鞘真的好精彩~!我好像也开始爱上悬疑推理了哈哈哈~不过还是胆子有点小,不太敢一个人看~~

结束碎碎念,一起来看看今天有什么题目吧~

闯关开始!

关卡1 - 平面上的最近距离

思路:

两个点 P1(x1, y1) 和 P2(x2, y2) 之间的欧几里得距离定义为 (x1−x2)^2 + (y1−y2)^2,所以为了求得距离,我们要利用内置函数 POW() 和 SQRT()。

怎么才能让x1 x2 y1 y2在一起呢,我们要把他们合并成一张表,

而合并的条件就是两个坐标不想等,(p1.x,p1.y) <> (p2.x,p2.y) 这样就可以啦~ 对了,<>这个符号的意思是不等于~

select round(min(sqrt(power(p1.x-p2.x,2)+power(p1.y-p2.y,2))),2) 

as shortest

from point_2d p1

join point_2d p2

on (p1.x,p1.y) <> (p2.x,p2.y)

恭喜过关!进入下一关!


关卡2 - 直线上的最近距离

思路:

这道题跟前一道题一样的思路,还更简单了一点~

我们跟前面一样创建ab表,让a.x <> b.x

然后求ab之间绝对值的最小值,就是答案啦

select min(abs(b.x - a.x)) as shortest from point a

join point b 

on a.x <> b.x

恭喜过关!进入下一关!


关卡3 - 二级关注者

思路:

经过观察,我发现产出表的follower(计算每个人有多少粉丝)其实是原来表格的followee(被关注的人),所以我们就select followee as follower。然后count他拥有的粉丝数量,group by followee。

记得要加上一个限制,限制 followee 要在follower中。

select followee as follower, count(distinct follower) as num from follow  

where followee in (select distinct follower from follow)

group by followee

恭喜过关!进入下一关!


关卡4 -  平均工资:部门与公司比较

思路:

这道要对比部门平均工资和公司平均工资,那自然就是要算出部门平均和公司平均啦

所以我们在我们的子查询里面,我们做三件事情,1. 转换日期格式,用法:date_format(pay_date,'%Y-%m'), 2. 窗口函数算出部门平均,3.窗口函数算出公司平均。再强调一下,partition by可以理解成group by。

然后在主查询里面,我们要做的主要是case when,来分状况讨论,记得最后要group by pay month 和 department id。因为输出的表格里就是分部门分日期输出的。

select pay_month, department_id,

case when com_avg > dep_avg then 'lower'

     when com_avg = dep_avg then 'same'

     else 'higher' end as comparison

from(

    select 

        date_format(pay_date,'%Y-%m') as pay_month, 

        department_id, 

        avg(amount) over(partition by pay_date) as com_avg,

        avg(amount) over(partition by pay_date, department_id) as dep_avg

        from

            salary s join employee e on s.employee_id = e.employee_id)t

group by pay_month, department_id

order by pay_month desc, department_id

恭喜过关!进入下一关!


关卡5 - 学生地理信息报告

思路;

创建一些case when,当continent是America,则附上其对应的名字。(妙啊)

前面加max是为了排除null值,max和min都会忽略null值,所以这里用max,min都可以。

然后,以rk分组对该新列做max聚合分析。

select

max(case when continent = 'America' then name else null end) as America,

max(case when continent = 'Asia' then name else null end)as Asia,

max(case when continent = 'Europe' then name else null end) as Europe

from 

(select *, row_number() over(partition by continent order by name) rk

from student) t

group by rk

来看看这道题分布的输出吧:

看完真的醍醐灌顶,太强了!!这是什么神仙逻辑,为什么可以有人这么聪明!!

你~学废了吗

恭喜过关!

今天学到的新知识:<>这个符号的意思是不等于;转换日期格式用法:date_format(列名,'%Y-%m');max和min这种聚合函数都会忽略null值。

明天继续闯关~yay ~                                                                                                                                                                                                           

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

推荐阅读更多精彩内容