快樂SQL做題 - Day5

Hello:奚痢蹂匹!結(jié)束快樂的旅行~今天是SQL DAY 5啦~

一起來看看今天有什么題目吧~

闖關(guān)開始!

關(guān)卡1-??員工薪水中位數(shù)

思路:

在做這道題之前戚揭,我們需要了解窗口函數(shù)

因為我們要創(chuàng)建兩個新的column:一個在每個company中排序雕旨,產(chǎn)生row number; 另一個column是count這個company有多少員工

最后計算row_number = 中位數(shù)

SELECT?Id,?Company,?Salary

FROM

(SELECT?Id,?Company,?Salary,

????ROW_NUMBER()?OVER?(PARTITION?BY?company?ORDER?BY?Salary?ASC,?id?ASC)?AS?row_num,

????COUNT(Id)?OVER?(PARTITION?BY?company)?AS?count_id

????FROM?Employee ) AS?ans

WHERE?row_num?IN?(FLOOR((count_id?+?1)/2),?FLOOR((count_id?+?2)/2))

最后一行這么寫的原因是,如果count id 為奇數(shù)悲柱,比如3锋喜,那么floor(4/2) = 2, floor(5/2)=2豌鸡,當(dāng)他為偶數(shù)嘿般,那就返回兩個值。符合了我們題目的要求涯冠。

恭喜過關(guān)炉奴!進(jìn)入下一關(guān)!


關(guān)卡2 -? 至少有5名直接下屬的經(jīng)理


思路:

自連接之后就可以很好的完成啦~~

記得count可以在having里面使用~而having是在group by后面~~

select?distinct?b.name?from?employee?a, employee?b

where?a.ManagerId?=?b.Id

group?by?b.Id

having?count(b.Id)?>=?5

恭喜過關(guān)蛇更!進(jìn)入下一關(guān)瞻赶!


關(guān)卡3 -?當(dāng)選者

思路:

首先有兩張表,我們一定是要先把兩張表join在一起

加完我們先以姓名分組派任,再按照每個分組的計數(shù)給分組降序排序砸逊,使用?limit 1?取第一名即可。

select?c.name?from?candidate?c

join?vote?v

on?c.id?=?v.CandidateId

group?by?c.name

order?by?count(v.CandidateId)?desc

limit?1

恭喜過關(guān)掌逛!進(jìn)入下一關(guān)师逸!


關(guān)卡4 -?查詢回答率最高的問題

思路:

我們先排除answer為null的情況

再按照問題分組

然后降序排序出?count(answer_id) ,看看回答的次數(shù)

最后limit1豆混,就可以啦

答案:

select?question_id?as?survey_log

from?survey_log

where?answer_id?is?not?null

group?by?question_id

order?by?count(answer_id)?desc

limit?1

恭喜過關(guān)篓像!進(jìn)入下一關(guān)动知!


關(guān)卡5 -?查詢員工的累計薪水

思路:

還記得day4的關(guān)卡3嗎~ 也是一道求累計和的題, 當(dāng)時我說他的精髓在于讓?a.month?>=?b.month 然后group by a.id 和 a.month, 這里也是一樣,我們以后可以養(yǎng)成這樣的思維员辩,就是當(dāng)要求cumulative的和拍柒,我們就這么做。當(dāng)然屈暗,記得第一行是sum(b.salary)拆讯。

現(xiàn)在我們來解決另一個問題,題目還要求取掉最大月之后养叛,求剩下每個月的近三個月工資?

所以我們用a.month-3 <?b.month?限制只對最近三個月工資求和种呐。

另外創(chuàng)建一個子查詢,?(a.id, a.month)?not?in?(select?id,?max(month)?from?employee?group?by?id)

通過限制not in max(month) 弃甥,我們排除了最大的月份爽室。

答案:

select?a.id, a.month, sum(b.salary)?as?Salary?from?employee?a,?employee?b

where?a.id?=?b.id

and?a.month?>=?b.month

and?a.month-3 <?b.month?

and?(a.id, a.month)?not?in?(select?id,?max(month)?from?employee?group?by?id)

group?by?a.id, a.month

order?by?id?asc, month?desc

恭喜過關(guān)!


今天學(xué)到的新知識:兩個新的窗口函數(shù)淆攻,?ROW_NUMBER()?OVER?(PARTITION?BY ) 計算第幾行, COUNT()?OVER?(PARTITION?BY ) 計算出現(xiàn)的個數(shù)阔墩;求最大不一定要max(), order by 然后 limit 1 也是很好的選擇。靈活運用瓶珊,is null 和is not null啸箫;類似python中cunsum()求累計之和的套路。

明天繼續(xù)闖關(guān)~yay ~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伞芹,一起剝皮案震驚了整個濱河市忘苛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唱较,老刑警劉巖扎唾,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異南缓,居然都是意外死亡胸遇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門汉形,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纸镊,“玉大人,你說我怎么就攤上這事获雕”∧澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵届案,是天一觀的道長庵楷。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么尽纽? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任咐蚯,我火速辦了婚禮,結(jié)果婚禮上弄贿,老公的妹妹穿的比我還像新娘春锋。我一直安慰自己,他們只是感情好差凹,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布期奔。 她就那樣靜靜地躺著,像睡著了一般危尿。 火紅的嫁衣襯著肌膚如雪呐萌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天谊娇,我揣著相機與錄音肺孤,去河邊找鬼。 笑死济欢,一個胖子當(dāng)著我的面吹牛赠堵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播法褥,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼茫叭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挖胃?” 一聲冷哼從身側(cè)響起杂靶,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酱鸭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垛吗,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡凹髓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了怯屉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔚舀。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锨络,靈堂內(nèi)的尸體忽然破棺而出赌躺,到底是詐尸還是另有隱情,我是刑警寧澤羡儿,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布礼患,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缅叠。R本人自食惡果不足惜悄泥,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肤粱。 院中可真熱鬧弹囚,春花似錦、人聲如沸领曼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庶骄。三九已至毁渗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓢姻,已是汗流浹背祝蝠。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幻碱,地道東北人绎狭。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像褥傍,于是被迫代替她去往敵國和親儡嘶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容