?? 作者:韓信子@ShowMeAI
?? 資料分析實戰系列:https://www.showmeai.tech/tutorials/40
?? AI 面試題庫系列:https://www.showmeai.tech/tutorials/48
?? 本文地址:https://www.showmeai.tech/article-detail/342
?? 宣告:著作權所有,轉載請聯系平臺與作者并注明出處
?? 收藏ShowMeAI查看更多精彩內容
大量的資料科學職位需要精通 SQL,它也是資料分析師、資料科學家、資料建模崗最常考核的面試技能,在本篇內容中 ShowMeAI 將梳理匯總所有面試 SQL 問題,按照不同的主題構建練習專項塊,要求職的同學們可以按照對應板塊內容進行專項擊破與復習,
本篇內容借助于LeetCode平臺,它是面試刷題演練的絕佳資源,內容覆寫大家熟知的資料結構演算法和 SQL等, LeetCode 將問題分為簡單、中等和困難的難度級別,SQL板塊的一個問題是它沒有對它們做很好的分類,大家可以參考 ShowMeAI 在本篇的內容板塊分類方式,
我們每個板塊的內容都會指向 LeetCode 問題的對應鏈接,大家可以刷題和定向復習,
?? 學習計劃時間表
我們建議最佳的節奏是1天一個板塊,每天 2-4 個 SQL 問題(就如我們在下面劃分的板塊), 這個節奏下你應該可以充分掌握并鞏固對應的主題,
當然,如果你是資深玩家,可以跳過里面的基礎板塊,專注于更中級和高級的主題(比如第8,9,10天的內容),
對于 SQL 更詳盡的內容,歡迎大家查閱ShowMeAI制作的速查表,快學快用:
- 編程語言速查表 | SQL 速查表
?? 學習計劃
?? 第1天:選擇和過濾
這個板塊主要針對 SQL 的SELECT陳述句,掌握使用它從一個或多個表中選擇列欄位,配合WHERE陳述句設定一個或多個條件,
- ??單列條件選擇:Article Views I
- ??多條件選擇:Big Countries
- ??過濾具有空值的列:Find Customer Referee
- ??選擇第二大的值:Second Highest Salary
?? 第2天:表關聯
SQL中有 4 種主要的連接型別: INNER JOIN(或者 JOIN), LEFT JOIN / RIGHT JOIN, FULL OUTER JOIN, 和 CROSS JOIN,
SQL中的UNION函式將兩個或多個 select 陳述句的結果集組合成一個結果,
SQL UNION ALL函式保留重復的行,
- ??左/右/外連接:Combine Two Tables
- ??全外連接:Employees With Missing Information
- ??選擇重復行:Duplicate Emails
- ??將列重新排列為行值:Rearrange Products Table
?? 第3天:分組聚合
SQL中GROUP BY陳述句根據一列或多列的值對行進行分組,每組回傳一行,分組之后可以對每個組執行聚合函式,例如 SUM和 COUNT,
- ??分組和聚合:Daily Leads and Partners
- ??join與分組:Customer Who Visited but Did Not Make Any Transactions
- ??帶where的分組:The Latest Login in 2020
?? 第4天:過濾分組
SQL HAVING子句為定義的組指定條件 GROUP BY. 這通常用于過濾由分組和聚合產生的行,
- ??空值過濾與分組求和:Top Travellers
- ??分組搭配having陳述句:Actors and Directors Who Cooperated At Least Three Times
?? 第5天:CASE陳述句
SQL CASE陳述句判斷符合的條件并回傳該條件下對應的結果,類似在其他編程語言中的if陳述句,
- ??帶條件計算值:Calculate Special Bonus
- ??對資料關系進行分類:Tree Node
- ??條件判斷&求和:Capital Gain/Loss
- ??資料透視表:Reformat Department Table
?? 第6天:子查詢
SQL 子查詢是嵌套在另一個查詢中的查詢,我們可以把一個查詢的結果,用到另一個查詢中,
- ??Sales Person:子查詢中的join
- ??Market Analysis I:join中的子查詢
?? 第7天:更新&洗掉
SQL中的UPDATE陳述句用于更改表中的現有資料,
SQL中的DELETE陳述句用于從表中洗掉一行或多行,
- ??反轉欄位的值:Swap Salary
- ??洗掉重復行:Delete Duplicate Emails
?? 第8天:字串處理
SQL中有很多字串處理函式,例如UPPER, LOWER, CONCAT, GROUP_CONCAT, TRIM,以及正則運算式的使用, 熟悉一些常見的 SQL 字串函式 ??在這里 ,
- ??Fix Names in a Table:僅首字母大寫
- ??Group Sold Products By The Date:與 group by 連接
- ??Patients With a Condition:過濾包含子字串的字串
?? 第9天:分析函式
SQL中
FIRST_VALUE()和LAST_VALUE()分析函式分別回傳一組有序值中的第一個值和最后一個值;LAG()視窗函式提供對前一行或多行資料的訪問;LEAD()視窗函式提供對下一行或多行資料的訪問,
對應考題
- ??Consecutive Numbers:選擇連續值
- ??Department Highest Salary:獲取磁區頭部
- ??Exchange Seats:每兩行交換一次
?? 第10天:視窗函式
常用&面試常考的RANK視窗函式是 ROW_NUMBER(), RANK(), DENSE_RANK() 和 NTILE()
- ??Rank Scores:得分排名
- ??Department Top Three Salaries:磁區前 3 名
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/538885.html
標籤:其他
下一篇:Redis的Java客戶端
