日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

SQL有很多非常強大的功能,但是在數據科學的面試中,大多數公司只會問你少數幾個核心概念。下文中的10個概念是面試中最常出現并且在現實生活中的應用最多的。

數據科學面試中,面試官一般會問我們哪些SQL概念?

 

在本文中,我將給大家帶來我認為的10個最重要SQL概念。如果你正在準備數據科學面試時,你可以集中時間在理解這些概念上。

1.CASE WHEN

你可能會看到很多需要使用CASE WHEN語句的問題,這只是因為它是一個多功能的概念。

如果要根據其他變量分配某個值或類,則可以使用它編寫復雜的條件語句。

很多人不知道的是,該語句還允許我們透視數據。例如,如果你有一個 month 列,并且希望為每個月創建一個單獨的列,則可以使用CASE WHEN語句來透視數據。

示例問題:編寫一個SQL查詢來重新格式化表,以便每個月都有一個revenue列。

Initial table:
+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 1    | 8000    | Jan   |
| 2    | 9000    | Jan   |
| 3    | 10000   | Feb   |
| 1    | 7000    | Feb   |
| 1    | 6000    | Mar   |
+------+---------+-------+

Result table:
+------+-------------+-------------+-------------+-----+-----------+
| id   | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-----------+
| 1    | 8000        | 7000        | 6000        | ... | null        |
| 2    | 9000        | null        | null        | ... | null        |
| 3    | null        | 10000       | null        | ... | null        |
+------+-------------+-------------+-------------+-----+-----------+

2.SELECT DISTINCT

SELECT DISTINCT 是你一定要時刻牢記的東西,最常見的用法是將 SELECT DISTINCT 語句與聚合函數進行結合。

例如,如果我們有一個顯示客戶訂單的表,則可能會要求我們計算每個客戶的平均訂單數。在這種情況下,我們希望將訂單總數計入客戶總數中。如下所示:

SELECT
   COUNT(order_id) / COUNT(DISTINCT customer_id) as orders_per_cust
FROM
   customer_orders

3.聚合函數

在這里可以和上面的第2點相結合,你需要對聚合函數有很強的理解,比如 min,max,sum,count 等等…這也意味著你應該對 groupby 和 HAVING 子句有很好的理解。我強烈建議你花點時間來解決實踐問題,因為有一些創造性的方法可以使用聚合函數。

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

+----+---------+
| Id | Email   |
+----+---------+
| 1  | [email protected] |
| 2  | [email protected] |
| 3  | [email protected] |
+----+---------+

  ANSWER:
SELECT
    Email
FROM
    Person
GROUP BY
    Email
HAVING
    count(Email) > 1

4.左連接與內部連接

對于那些對 SQL 比較陌生或有一段時間沒有使用過 SQL 的人來說,很容易混淆左連接和內部連接,我們必須清楚地理解每個連接如何獲得不同的結果。在許多面試問題中,你都會被要求做一些連接,在某些情況下,選擇左或者右,都關系到正確和錯誤的答案。

5.自連接

SQL一般會通過自聯接將表與自身進行聯接,你可能會認為這沒用,但是很快你就會為之感到驚訝。在許多實際設置中,數據存儲在一個大表中,而不是許多小表中。在這種情況下,可能需要自連接來解決獨特的問題。

讓我們看一個例子。

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

+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

  Answer:
SELECT
    a.Name as Employee
FROM
    Employee as a
        JOIN Employee as b on a.ManagerID = b.Id
WHERE a.Salary > b.Salary

6.子查詢

子查詢,也稱為內部查詢或嵌套查詢,是查詢中的查詢,并且嵌入在WHERE子句中。 這是解決需要按順序進行多個查詢才能產生給定結果的獨特問題的好方法。子查詢和 WITH AS 語句在查詢時都非常有用,因此你一定要知道如何使用它們。

示例問題:假設一個網站包含兩個表,Customers 表和 Orders 表。 編寫SQL查詢,用來查找所有從不訂購任何商品的客戶。

Table: Customers.
+----+-------+
| Id | Name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+

  Table: Orders.
+----+------------+
| Id | CustomerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+

  Answer:
SELECT
    Name as Customers
FROM 
    Customers
WHERE
    Id NOT IN (
        SELECT 
            CustomerId 
        FROM Orders
    )

7.字符串格式化

字符串函數非常重要,尤其是在處理不干凈的數據時。 因此,很多公司在面試時可能會在字符串格式和操作方面對你進行測試,來檢測你是否知道如何操作數據。

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

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

8.日期時間操作

在日常工作中,你肯定遇到過涉及日期和時間數據的SQL問題。例如,讓你按照月份對數據進行分組,或者將變量格式從DD-MM-YYYY轉換為簡單的月份。

以下為應該知道的函數:

  • EXTRACT
  • DATEDIFF

示例問題:給定一個天氣表,編寫一個SQL查詢來查找與之前(昨天)日期相比溫度更高的所有日期的id。

+---------+------------------+------------------+
| Id(INT) | RecordDate(DATE) | Temperature(INT) |
+---------+------------------+------------------+
|       1 |       2015-01-01 |               10 |
|       2 |       2015-01-02 |               25 |
|       3 |       2015-01-03 |               20 |
|       4 |       2015-01-04 |               30 |
+---------+------------------+------------------+

  Answer:
SELECT
    a.Id
FROM
    Weather a,
    Weather b
WHERE
    a.Temperature > b.Temperature
    AND DATEDIFF(a.RecordDate, b.RecordDate) = 1

9.Window函數

Window函數允許我們對所有行執行聚合值,而不是只返回一行(groupby語句就是這樣做的)。在我們要對行進行排序、計算累計和等等操作時,Window函數會非常有用。

示例問題:編寫一個 SQL 查詢用于獲取薪水最高的 empno,以便確保方案可以處理其中的關系!

depname  | empno | salary |     
-----------+-------+--------+
 develop   |    11 |   5200 | 
 develop   |     7 |   4200 | 
 develop   |     9 |   4500 | 
 develop   |     8 |   6000 | 
 develop   |    10 |   5200 | 
 personnel |     5 |   3500 | 
 personnel |     2 |   3900 | 
 sales     |     3 |   4800 | 
 sales     |     1 |   5000 | 
 sales     |     4 |   4800 |

  Answer:
WITH sal_rank AS 
  (SELECT 
    empno, 
    RANK() OVER(ORDER BY salary DESC) rnk
  FROM 
    salaries)
SELECT 
  empno
FROM
  sal_rank
WHERE 
  rnk = 1;

10.UNION

UNION 不經常出現,但偶爾還是會有人問你這個問題,一般情況下,我們了解這個功能也是是很好的。如果你有兩個具有相同列的表,并且想把它們組合在一起,這時就可以用 UNION 了。

PS.如果你不能百分之百確定UNION的工作原理,記得找相關的教程來學習。

--END--

希望以上內容對你的求職面試有所幫助,如果你從內而外地了解這10個概念,那么在面對大多數SQL問題時,都能做得很好。

數據科學面試中,面試官一般會問我們哪些SQL概念?

 

參考鏈接:https://towardsdatascience.com/ten-sql-concepts-you-should-know-for-data-science-interviews-7acf3e428185

喜歡本文的同學記得轉發+點贊~

分享到:
標簽:科學 數據
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定