自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

想通過數(shù)據(jù)科學面試,這十個SQL概念你必須掌握

數(shù)據(jù)庫 SQL Server
隨著智能時代的逐漸來臨,用無代碼方法做事開始變得廣受歡迎,我們很有必要了解一下無代碼方法了。使用無代碼方法并不意味著你不明白怎樣寫代碼,事實上,你必須寫代碼寫得好,才能用好無代碼方法。

 本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

SQ是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng),其功能非常強大,是數(shù)據(jù)科學面試中繞不過的考點。

[[337292]]

很多人為了通過面試事無巨細地準備,犄角旮旯都不敢放過。但事實上,在現(xiàn)實面試中大多數(shù)公司只測試其少數(shù)核心概念。努力學習不如機智學習,以下這10個概念因其在實際中應用最多而最常出現(xiàn)。在準備面試時,你應該主要關注這些概念。

1. CASE WHEN

許多問題都可能需要使用CASE-WHEN語句,因為這個概念功能非常多。

在根據(jù)其他變量分配某個值或類時,我們需要用CASE-WHEN可以編寫復雜的條件語句。但還有一個功能鮮為人知,它可以用來透視數(shù)據(jù)。例如,如果你已有“月(month)”列,又希望為每個month創(chuàng)建一個單獨的列,則可以使用CASE WHEN語句來透視數(shù)據(jù)。

示例問題:編寫一個SQL查詢重新排列表樣式,以使每個月對應一個收入欄。

 

  1. Initial table
  2. +------+---------+-------+ 
  3. | id | revenue | month | 
  4. +------+---------+-------+ 
  5. | 1 | 8000 | Jan | 
  6. | 2 | 9000 | Jan | 
  7. | 3 | 10000 | Feb | 
  8. | 1 | 7000 | Feb | 
  9. | 1 | 6000 | Mar | 
  10. +------+---------+-------+ 
  11. Result table
  12. +------+-------------+-------------+-------------+-----+-----------+ 
  13. | id | Jan_Revenue | Feb_Revenue |Mar_Revenue | ... | Dec_Revenue | 
  14. +------+-------------+-------------+-------------+-----+-----------+ 
  15. | 1 | 8000 | 7000 | 6000 |... | null | 
  16. | 2 | 9000 | null | null | ... | null | 
  17. | 3 | null | 10000 | null | ... | null | 
  18. +------+-------------+-------------+-------------+-----+-----------+ 

2. SELECT DISTINCT

SELECT DISTINCT語句是一定要記牢的,將SELECT DISTINCT語句與聚合函數(shù)(即第三個概念)一起使用非常常見。例如,如果你有一個客戶訂單的數(shù)據(jù)表,則可能會被要求計算每個客戶的平均訂單數(shù)。在本例中,需要計算訂單的總數(shù)除以客戶的總數(shù)。像這樣:

 

  1. SELECT 
  2.    COUNT(order_id) / COUNT(DISTINCTcustomer_id) as orders_per_cust 
  3. FROM 
  4.    customer_orders 

3. 聚合函數(shù)

聚合函數(shù)跟上一點聯(lián)系緊密,你需要對這類函數(shù)的功能有深刻理解,比如min,max,sum,count等等……你應該好好理解GROUP BY和HAVING子句。我強烈建議你花點時間去解決實際問題,我們在一些創(chuàng)造性的方法中常常會用到聚合函數(shù)。

示例問題:編寫一個SQL查詢,在名為Person的表中找出所有重復的電子郵件。

 

  1. +----+---------+ 
  2. | Id | Email   | 
  3. +----+---------+ 
  4. | 1  | a@b.com | 
  5. | 2  | c@d.com | 
  6. | 3  | a@b.com | 
  7. +----+---------+ANSWER: 
  8. SELECT 
  9.     Email 
  10. FROM 
  11.     Person 
  12. GROUP BY 
  13.     Email 
  14. HAVING 
  15.     count(Email) > 1 

4. 左連接 vs 內連接

對于那些對SQL比較陌生,或有一段時間沒有使用過SQL的人來說,混淆左連接和內連接是件輕而易舉的事兒。請確保你能清楚理解每個連接如何獲得不同的結果,許多面試問題會要求你做一些連接。在某些情況下,選擇了一個而非另一個,即是成敗兩條路。

5. 自連接

SQL自連接指的是將表與其自身連接,它聽上去用處不大,但實際上用處十分廣泛。在許多實際應用中,數(shù)據(jù)存儲在一個大表中,而不是許多小表中,我們需要自連接來解決特定的問題。

示例問題:給定下面的Employee表,編寫一個SQL查詢,找出收入高于經理的員工。在表中,喬(Joe)是唯一收入高于經理的員工。

 

  1. +----+-------+--------+-----------+ 
  2. | Id | Name  | Salary | ManagerId | 
  3. +----+-------+--------+-----------+ 
  4. | 1  | Joe   | 70000 | 3         | 
  5. | 2  | Henry | 80000  | 4        | 
  6. | 3  | Sam   | 60000 | NULL      | 
  7. | 4  | Max   | 90000 | NULL      | 
  8. +----+-------+--------+-----------+Answer: 
  9. SELECT 
  10.     a.Name as Employee 
  11. FROM 
  12.     Employee as a 
  13.         JOIN Employee as b on a.ManagerID= b.Id 
  14. WHERE a.Salary > b.Salary 

6. 子查詢

子查詢也稱為內部查詢或嵌套查詢,是查詢內查詢,會被嵌入到WHERE子句中,可以解決需要多次按序查詢以生成給定結果的特殊問題。子查詢和WITH AS語句在查詢中的使用次數(shù)都非常多,因而必須掌握。

示例問題:假設一個網站包含兩個數(shù)據(jù)表,Customers表和Orders表。編寫一個SQL查詢來找出所有從未訂購過的客戶。

 

  1. Table: Customers.+----+-------+ 
  2. | Id | Name  | 
  3. +----+-------+ 
  4. | 1  | Joe   | 
  5. | 2  | Henry | 
  6. | 3  | Sam   | 
  7. | 4  | Max   | 
  8. +----+-------+Table: Orders. 
  9. +----+------------+ 
  10. | Id | CustomerId | 
  11. +----+------------+ 
  12. | 1  | 3          | 
  13. | 2  | 1          | 
  14. +----+------------+Answer: 
  15. SELECT 
  16.     Name as Customers 
  17. FROM 
  18.     Customers 
  19. WHERE 
  20.     Id NOT IN ( 
  21.         SELECT 
  22.             CustomerId 
  23.         FROM Orders 
  24.     ) 

7. 字符串格式化

字符串函數(shù)非常重要,尤其是在處理不清晰的數(shù)據(jù)時。公司很可能會考察你字符串的格式化和處理,以確保你懂得如何處理數(shù)據(jù)。

字符串格式化包括以下內容:

  • LEFT, RIGHT
  • TRIM
  • POSITION
  • SUBSTR
  • CONCAT
  • UPPER, LOWER
  • COALESCE

8. 日期時間處理

你肯定會遇到一些涉及日期和時間數(shù)據(jù)的SQL問題,也許是需要按月份對數(shù)據(jù)分組,或者將變量格式從DD-MM-YYYY轉換為簡單的月份。

須知的函數(shù):

  • EXTRACT
  • DATEDIFF

示例問題:給定一個Weather表,編寫一個SQL查詢以找出所有高于之前(昨天)溫度的日期Id。

 

  1. +---------+------------------+------------------+ 
  2. | Id(INT) | RecordDate(DATE) | Temperature(INT) | 
  3. +---------+------------------+------------------+ 
  4. |       1 |       2015-01-01 |               10 | 
  5. |       2 |       2015-01-02 |               25 | 
  6. |       3 |       2015-01-03 |               20 | 
  7. |       4 |       2015-01-04 |               30 | 
  8. +---------+------------------+------------------+Answer: 
  9. SELECT 
  10.     a.Id 
  11. FROM 
  12.     Weather a, 
  13.     Weather b 
  14. WHERE 
  15.     a.Temperature > b.Temperature 
  16.     AND DATEDIFF(a.RecordDate,b.RecordDate) = 1 

9. 窗口函數(shù)

窗口函數(shù)使你能對所有行執(zhí)行聚合值,而不是只返回一行(這是GROUP BY語句的用處),這對于行排序、計算累計等需求來說十分有用。

示例問題:編寫一個查詢以獲取薪水最高的empno,確保解決方案可以處理關系。

 

  1.   depname  | empno | salary |     
  2. -----------+-------+--------+ 
  3.  develop  |    11 |   5200 | 
  4.  develop  |     7 |   4200 | 
  5.  develop  |     9 |   4500 | 
  6.  develop  |     8 |   6000 | 
  7.  develop  |    10 |   5200 | 
  8.  personnel |     5 |  3500 | 
  9.  personnel |     2 |  3900 | 
  10.  sales    |     3 |   4800 | 
  11.  sales    |     1 |   5000 | 
  12.  sales    |     4 |   4800 |Answer: 
  13. WITH sal_rank AS 
  14.   (SELECT 
  15.     empno, 
  16.     RANK() OVER(ORDER BY salary DESC) rnk 
  17.   FROM 
  18.     salaries) 
  19. SELECT 
  20.   empno 
  21. FROM 
  22.   sal_rank 
  23. WHERE 
  24.   rnk = 1; 

10. UNION

UNION不常出現(xiàn),但偶爾也會有人問到這點,以防萬一還是要了解一下。如果你有兩個含有相同列的表,又希望將它們組合在一起,這時UNION就可以派上用場啦。如果你不能百分百確定如何操作它,請及時善用搜索引擎解決它。

掌握這個10個概念,面試中的大部分問題你都將迎刃而解。祝你面試順利!

 

 

責任編輯:華軒 來源: 讀芯術
相關推薦

2022-06-12 23:43:19

SQL數(shù)據(jù)函數(shù)

2022-03-22 23:18:55

SQL技術內部概念

2024-05-17 16:18:27

2024-09-13 09:59:27

2023-04-20 10:29:46

數(shù)據(jù)管理數(shù)據(jù)分析

2020-08-28 13:49:13

數(shù)據(jù)統(tǒng)計學面試

2019-07-11 14:45:52

簡歷編程項目

2021-10-18 08:01:44

TS語言TypeScript

2018-01-31 22:30:05

數(shù)據(jù)科學家數(shù)據(jù)專家工程師

2011-01-28 15:11:15

PowerShell

2020-09-08 15:15:06

Python數(shù)據(jù)科學Python庫

2011-05-11 15:28:05

2021-03-11 09:02:37

SQL數(shù)據(jù)庫數(shù)據(jù)

2020-08-06 08:27:21

JavaScript概念語言

2024-07-16 10:13:01

2024-07-26 21:35:11

2021-09-15 09:20:37

Python函數(shù)代碼

2023-12-23 11:15:25

2024-01-12 07:32:35

數(shù)據(jù)科學Python庫項目

2020-09-28 08:54:51

python
點贊
收藏

51CTO技術棧公眾號