刷完了Leetcode SQL Hard Level的28道題
歡迎領取參考答案
在Hohow開設的<入門數據分析,掌握HiveSQL取數能力>的課程已經逐漸有一些同學上完了15章,想說可以再增加點題目給學員練習,不如就從Leetcode挑幾道有趣的題目吧,結果寫著寫著就把Hard Level題目刷完了…
對於Leeetcode其實既熟悉又陌生,熟悉的是Leetcode已經是很多公司面試coding interview的題目;陌生的是我入行比較早,所以曾經有逛過但一直沒有認真刷題過。
如果你也有興趣的話,我把28道題的考答案都寫成了電子書,點擊下方連結,填表得領取方式!
邀請你至Blog閱讀全文:刷完了Leetcode SQL Hard Level的28道題:歡迎領取參考答案
也邀請你訂閱『Rock Data』電子報,支持我持續創作
1、很考驗綜合應用
基本90%的題目都需要window function,各種函數處理跟多表的處理也是基本款,所以語法要滿熟悉的,也包含語法的使用細節。例如<1194.Tournament Winners>,如果是用UNION
而不是UNION ALL
就無法求得正確答案。
但語法熟悉以外,但更大的困難是綜合運用的思考。
像是題目只有一張表,但要求解則需要對該表拆分成多張子表(例如618.Students Report By Geography)。有些題目甚至需要用不等於的JOIN關聯才能解(例如像是1635. Hopper Company Queries I)
另外像<1892.Page Recommendations II>、<1917.Leetcodify Friends Recommendations>、<1919.Leetcodify Similar Friends> 這幾道推薦題則是有自己JOIN自己的方式。
解hard真的是腦袋反應問題,有寫題目也是想了十幾分鐘才想到一些解題思路。
2、為了困難而困難(部分題)
有些題目可能為了考驗思考,所以在我看來題目提供的表結構有點奇怪,例如不等式的JOIN的用法其實很少用的,在Hive中一般也不允許這種笛卡兒積的操作。
在現實中有更多的表、或是可以拿到更底層的數據,我可以根據想要的分析結果,在中間過程先處理成好用的中間表,而不需要用題目提供的這種不合適的表結構繼續往下操作。
另外<2004.The Number of Seniors and Juniors to Join the Company>,題型是在一限制條件下求某種策略的解,這種問題很複雜的…如果不是題目限制SQL,選用R/python處理會更方便…
3、商業邏輯不make sense(部分題)
這邊要說一下<601.Human Traffic of Stadium>,題目其實滿好的,是求連續問題,但要求的卻是連續的主鍵id,我就不理解了這道題的id只是一個標示而已,返回這結果要幹嘛?毫無商業意義啊。如果改為連續N天登入用戶、用戶最長連續登入天數的問題,那就可以跟用戶活躍、用戶流失的商業場景結合了。
還有<1369.Get The Second Most Recent Activity>,題目要求頻率第二頻繁的活動,但工作中我們更常關注最大,最近、最小、最遠之類的 ,也就是第一(或倒數第一),什麼商業場景下要求第二高?思考了下也沒啥印象
4、最後
整體來說我還是相當推薦的,難度剛好覆蓋完我Hive課程的難度,並且又需要靈活的思維。
面試的話,其實滿常會考SQL,至於對面試有幫助嗎?我覺得有,但不是必須。如前面所說,有些題目是為了困難而困難,面試難題中最經典的題目,就是連續問題了,也就是窗口函數、次難高頻我覺得是jason解析,涉及知識是解析函數跟一些本文清洗函數、表結構轉換(行列互轉)。
Hard題比這還難,所以練習到medium我想就足夠了。
如果你有興趣或是想挑戰看看的話,我把28道題的寫成了 <Hand On Leetcode Database Solution with Hive SQL> 這本電子書
歡迎點擊下方連結,填表領取!
1. Hello All:主站遷移至👉https://andyrockdata.com/ ,請改至『ROCK DATA』Blog 閱讀新文章完整內容,如果喜歡我的文章,可以訂閱我的電子報(Medium站仍將張貼新文章訊息)2.立即追蹤👉ROCK DATA臉書粉絲頁跟ROCK DATA IG(@andyrockdata)3.【入門數據分析,掌握HiveSQL取數能力】在hahow上架啦,購買連結👉 http://hahow.in/cr/andyrockhive4. 往期的數據相關文章可以參考以下link
- 數據分析系列1:談談數據分析的眾多Title
- 數據分析系列2:數據分析的一週工作日程
- 數據分析系列3:身為資料分析師,你該如何展現工作中的價值?
- 數據分析系列4:如何量化職場規劃?我這次的轉職規劃與Offer選擇
- 數據分析系列5:為什麼要關心資料來源?談談埋點數據的陷阱
- 數據分析系列6:精選幾個機器學習的學習資源
- 數據分析系列7:數位化決策轉型與企業文化的一些思考
- 數據分析系列8:中山大學經濟所職涯座談(ㄧ):”了解自己”的重要&我怎麼成為數據分析師
- 數據分析系列9:中山大學經濟所職涯座談(二):想從事資料分析?你需要具備這8個能力
- 數據分析系列10:中山大學經濟所職涯座談(三) :讓資料變商機 — 資料分析在我們生活中的應用
- 數據分析系列11:面試時,資料分析師該怎麼準備作品集?
- 數據分析系列12:2018年終工作總結(數據分析師)
- 數據分析系列13:數據化運營中玩過的分析項目:一個數據分析師的經驗總結
- 數據分析系列14:如何提升運營/產品的優化效率?或許數據指標體系的搭建可以幫到忙
- 數據分析系列15:用戶畫像很重要,那你知道是怎麼畫出來的嗎?
- 數據分析系列16:給剛入行的數據分析師:想產生價值,在試用期要做的三件事
- 數據分析系列17:2019 數據分析工作總結_關鍵詞:數倉構建、BI可視化看板、用戶畫像(標籤)與精準行銷
- 數據分析系列18:入門數據分析的第一個大門檻:SQL/Hive取數-聊聊自身學習SQL的經歷以及三個自學網站分享
- 數據分析系列19:身為數據分析師,我怎麼看hahow上”R語言和商業分析”這門課
- 數據分析系列20:直接用SQL來分析數據?怎麼沒用python/R?3個面向來考量分析工具的選擇
- 數據分析系列21:數據分析的”橫向”學習之路-珍藏的網上文章重新整理放上github
- 數據分析系列22:透過埋點,讓數據說話:埋點基本知識
- 數據分析系列23:以數據為核心的CRM進化產品:帶你了解CDP(客戶數據平台)開發過程與難點
- 數據分析系列24:SQL不難啊,為什麼不容易精通?自學與實務的4個落差
- 數據分析系列25:數據分析基本-相關分析與可視化(R語言)
- 數據分析系列26:刷完了Leetcode SQL Hard Level的28道題:歡迎領取參考答案
- 數據分析系列27:數據太髒了!3個步驟做好數據質量管理
- 數據分析系列28:跨部門溝通成本太高?數據人實現高效跨部門溝通的4個方式
- 數據分析系列29:數據分析師職場發展的另類出路
- 數據分析系列30:Databrick為何收購BI產品Redash?產品視角來看Redash的功能與價值
- 數據分析系列31:數據分析師要失業了?解讀<2022 Gartner BI魔力象限> BI產品趨勢
- 數據分析系列32:Google Data Catalog如何幫忙管理數據? 產品介紹與體驗心得
- 數據分析系列33:復盤:數據產品從0到1的建設過程,我的9點感觸
- 數據分析系列34:Shopline-數據分析中心(Shoplytics)產品體驗
- 數據分析系列35:搞數據還是做產品?淺談『數據產品經理』