偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

 本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。

SQ是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),其功能非常強(qiáng)大,是數(shù)據(jù)科學(xué)面試中繞不過(guò)的考點(diǎn)。

[[337292]]

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

1. CASE WHEN

許多問(wèn)題都可能需要使用CASE-WHEN語(yǔ)句,因?yàn)檫@個(gè)概念功能非常多。

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

示例問(wèn)題:編寫(xiě)一個(gè)SQL查詢重新排列表樣式,以使每個(gè)月對(duì)應(yīng)一個(gè)收入欄。

 

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

 

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

3. 聚合函數(shù)

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

示例問(wèn)題:編寫(xiě)一個(gè)SQL查詢,在名為Person的表中找出所有重復(fù)的電子郵件。

 

  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 內(nèi)連接

對(duì)于那些對(duì)SQL比較陌生,或有一段時(shí)間沒(méi)有使用過(guò)SQL的人來(lái)說(shuō),混淆左連接和內(nèi)連接是件輕而易舉的事兒。請(qǐng)確保你能清楚理解每個(gè)連接如何獲得不同的結(jié)果,許多面試問(wèn)題會(huì)要求你做一些連接。在某些情況下,選擇了一個(gè)而非另一個(gè),即是成敗兩條路。

5. 自連接

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

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

 

  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. 子查詢

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

示例問(wèn)題:假設(shè)一個(gè)網(wǎng)站包含兩個(gè)數(shù)據(jù)表,Customers表和Orders表。編寫(xiě)一個(gè)SQL查詢來(lái)找出所有從未訂購(gòu)過(guò)的客戶。

 

  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í)。公司很可能會(huì)考察你字符串的格式化和處理,以確保你懂得如何處理數(shù)據(jù)。

字符串格式化包括以下內(nèi)容:

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

8. 日期時(shí)間處理

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

須知的函數(shù):

  • EXTRACT
  • DATEDIFF

示例問(wèn)題:給定一個(gè)Weather表,編寫(xiě)一個(gè)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ù)使你能對(duì)所有行執(zhí)行聚合值,而不是只返回一行(這是GROUP BY語(yǔ)句的用處),這對(duì)于行排序、計(jì)算累計(jì)等需求來(lái)說(shuō)十分有用。

示例問(wèn)題:編寫(xiě)一個(gè)查詢以獲取薪水最高的empno,確保解決方案可以處理關(guān)系。

 

  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),但偶爾也會(huì)有人問(wèn)到這點(diǎn),以防萬(wàn)一還是要了解一下。如果你有兩個(gè)含有相同列的表,又希望將它們組合在一起,這時(shí)UNION就可以派上用場(chǎng)啦。如果你不能百分百確定如何操作它,請(qǐng)及時(shí)善用搜索引擎解決它。

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

 

 

責(zé)任編輯:華軒 來(lái)源: 讀芯術(shù)
相關(guān)推薦

2022-06-12 23:43:19

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

2022-03-22 23:18:55

SQL技術(shù)內(nèi)部概念

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)計(jì)學(xué)面試

2019-07-11 14:45:52

簡(jiǎn)歷編程項(xiàng)目

2021-10-18 08:01:44

TS語(yǔ)言TypeScript

2018-01-31 22:30:05

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

2020-09-08 15:15:06

Python數(shù)據(jù)科學(xué)Python庫(kù)

2011-01-28 15:11:15

PowerShell

2011-05-11 15:28:05

2021-03-11 09:02:37

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

2020-08-06 08:27:21

JavaScript概念語(yǔ)言

2024-07-16 10:13:01

2024-07-26 21:35:11

2023-12-23 11:15:25

2021-09-15 09:20:37

Python函數(shù)代碼

2024-01-12 07:32:35

數(shù)據(jù)科學(xué)Python庫(kù)項(xiàng)目

2022-05-16 07:48:54

Python操作類型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)