精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

常見SQL知識點總結,建議收藏!

數據庫 SQL Server
在這篇文章中,我將介紹 SQL 面試問題中常見的模式,并提供一些在 SQL 查詢中巧妙處理它們的技巧。

?SQL是用于數據分析和數據處理的最重要的編程語言之一, 因此與數據科學相關的工作(例如數據分析師、數據科學家和數據工程師)在面試時總會問到關于 SQL 的問題。

SQL面試問題旨在評估應聘者的技術和解決問題的能力。因此對于應聘者來說,關鍵在于不僅要根據樣本數據編寫出正確的查詢,而且還要像對待現實數據集一樣考慮各種場景和邊緣情況。

在這篇文章中,我將介紹 SQL 面試問題中常見的模式,并提供一些在 SQL 查詢中巧妙處理它們的技巧。

1. 問問題

要搞定一場 SQL 面試,最重要的是盡量多問問題,獲取關于給定任務和數據樣本的所有細節。充分理解需求后,接下來你就可以節省很多迭代問題的時間,并且能很好地處理邊緣情況。

我注意到許多候選人經常還沒完全理解SQL問題或數據集, 就直接開始編寫解決方案了。之后,等我指出他們解決方案中存在的問題后,他們只好反復修改查詢。最后,他們在迭代中浪費了很多面試時間,甚至可能到最后都沒有找到正確的解決方案。

我建議大家在參加SQL面試時,就當成是自己在和業務伙伴共事。所以在你提供解決方案之前,應該要針對數據請求了解清楚所有的需求。

舉例

查找薪水最高的前 3 名員工。

樣本Employee_salary表

這里你應該要求面試官說清楚“前三名”具體是什么意思。我應該在結果中包括 3 名員工嗎?你要我怎樣處理關系?此外,請仔細檢查樣本員工數據。Salary 字段的數據類型是什么?在計算之前是否需要清除數據?

2.選哪一個JOIN

在SQL中,JOIN 通常用來合并來自多個表的信息。

有四種不同類型的 JOIN,但在大多數情況下,我們只使用INNER、LEFT和FULLJOIN,因為 RIGHTJOIN并不是很直觀,還可以使用 LEFTJOIN 很簡單地重寫。在 SQL 面試中,需要根據給定問題的特定要求選擇你要使用的正確JOIN。

舉例

查找每個學生參加的課程總數。(提供學生 id、姓名和選課的數量。)

圖片

樣本Student和Class_history表

你可能已經注意到了,并非所有出現在 Class_history 表中的學生都出現在了 Student 表中,這可能是因為這些學生已經畢業了。(這在事務數據庫中實際上是非常典型的情況,因為不再活躍的記錄往往會被刪除。)

根據面試官是否希望結果中包含畢業生,我們需要使用LEFT JOIN或 INNER JOIN來組合兩個表:

WITH class_count AS (
SELECT student_id, COUNT(*) AS num_of_class
FROM class_history
GROUP BY student_id
)
SELECT
c.student_id,
s.student_name,
c.num_of_class
FROM class_count c
-- CASE 1: include only active students
JOIN student s ON c.student_id = s.student_id
-- CASE 2: include all students
-- LEFT JOIN student s ON c.student_id = s.student_id

3.GROUP BY

GROUP BY是SQL中最重要的功能,因為它廣泛用于數據聚合。如果在一個 SQL 問題中看到諸如求和、平均值、最小值或最大值之類的關鍵字,這就表明你可能應該在查詢中使用GROUP BY了。

一個常見的陷阱是在GROUP BY過濾數據時混淆 WHERE和HAVING——我見過很多人犯了這個錯誤。

舉例

計算每個學生在每個學年的必修課程平均 GPA,并找到每個學期中符合 Dean’s List(GPA≥3.5)資格的學生。

樣本Gpa_history表

由于我們在GPA計算中僅考慮必修課程,因此需要使用WHERE is_required=TRUE來排除選修課程。

我們需要每位學生在每學年的平均GPA,因此我們將同時GROUP BY student_id和School_year 列,并取Gpa列的平均值。最后,我們只保留學生平均 GPA高于3.5的行,可以使用HAVING來實現。合起來是下面這樣:

SELECT 
student_id,
school_year,
AVG(gpa) AS avg_gpa
FROM gpa_history
WHERE is_required = TRUE
GROUP BY student_id, school_year
HAVING AVG(gpa) >= 3.5

注意:每當在查詢中使用GROUP BY時,都只能選擇Group-by列和聚合列,因為其他列中的行級信息已被舍棄。

4.SQL 查詢執行順序

大多數人會從SELECT開始,從上到下編寫SQL查詢。

但你知道SQL引擎執行函數時要到后面才執行SELECT嗎?以下是 SQL 查詢的執行順序:

  • FROM, JOIN
  • WHERE
  • GROUP BY
  • HAVING
  • SELECT
  • DISTINCT
  • ORDER BY
  • LIMIT, OFFSET

再次考慮前面的示例:

因為我們想在計算平均GPA之前過濾掉選修課程,所以我使用WHERE is_required=TRUE代替HAVING,因為WHERE會在GROUP BY和HAVING之前執行。我不能編寫HAVING avg_gpa >= 3.5的原因是,Avg_gpa被定義為SELECT的一部分,因此無法在SELECT之前執行的步驟中引用它。

我建議在編寫查詢時遵循引擎的執行順序,這在編寫復雜查詢時會很有用。

5.Window 函數

Window函數也經常出現在SQL面試中。共有五種常見的Window函數:

  • **RANK/DENSE_RANK/ROW_NUMBER:**它們通過排序特定列來為每行分配一個排名。如果給出了任何分區列,則行將在其所屬的分區組中排名。
  • **LAG/LEAD:**它根據指定的順序和分區組從前一行或后一行檢索列值。

在SQL面試中,重要的是要了解排名函數之間的差異,并知道何時使用LAG/LEAD。

舉例

查找每個部門中薪水最高的前 3 名員工。

圖片

另一個示例Employee_salary表

當一個SQL問題要求計算“TOP N”時,我們可以使用ORDER BY或排名函數來回答問題。

但在這個示例中,它要求計算“每個 Y 中的 TOP N X”,這強烈暗示我們應該使用排名函數,因為我們需要對每個分區組中的行進行排名。

以下查詢恰好能找到 3 名薪水最高的員工,而不論他們的關系如何,如下:

WITH T AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY employee_salary DESC) AS rank_in_dep
FROM employee_salary)
SELECT * FROM T
WHERE rank_in_dep <= 3
-- Note: When using ROW_NUMBER, each row will have a unique rank number and ranks for tied records are assigned randomly. For exmaple, Rimsha and Tiah may be rank 2 or 3 in different query runs.

此外,根據關系的處理方式,我們可以選擇其他排名函數。同樣,細節是很重要的!

圖片

ROW_NUMBER,RANK,DENSE_RANK結果比較

6.重復項

SQL面試中的另一個常見陷阱是忽略數據重復。 

盡管樣本數據中的某些列似乎具有不同的值,但面試官還是希望候選人考慮所有可能性,就像他們在處理真實數據集一樣。

例如

在上一個示例Employee_salary表中,可以讓雇員共享相同的名稱。 

要避免由重復項導致的潛在問題,一種簡單方法是始終使用 ID 列唯一地標識不同的記錄。

舉例

使用 Employee_salary 表查找每個部門所有員工的總薪水。正確的解決方案是 GROUP BY employee_id,然后使用 SUM(employee_salary) 計算總薪水。如果需要雇員姓名,請在末尾與 Employee 表聯接以檢索雇員姓名信息。錯誤的方法是使用 GROUP BY employee_name。

7.NULL

在SQL中,任何謂詞都可以產生三個值之一True,False和NULL,后者是Unknown或Missing數據值的保留關鍵字。處理NULL數據集時可能會意外地很棘手。

在SQL面試中,面試官可能會特別注意解決方案是否處理了NULL值。有時,很明顯有一列是不能Nullabl的,但對于其他大多數列來說,很有可能會有NULL值。

建議:確認示例數據中的關鍵列是否為Nullable,

如果可以,請利用IS(NOT)NULL,IFNULL和COALESCE 之類的函數來覆蓋這些邊緣情況。

8.交流

最后一點也非常重要:在SQL面試期間要隨時與面試官溝通交流。

我面試過的許多候選人都很沉默寡言,有疑問的時候才會知聲。當然如果他們最終給出了完美的解決方案,那也不是什么問題。

但是,在技術面試期間保持溝通交流往往會是有價值的。

例如:你可以談論對問題和數據的理解,說明你計劃如何解決問題,為什么使用某些函數而不是其他選項,以及正在考慮哪些極端情況。

9.總結

  • 首先要提問,收集所需的細節
  • 在INNER,LEFT和FULL JOIN之間謹慎選擇
  • 使用GROUP BY聚合數據并正確使用WHERE和HAVING
  • 了解三個排名函數之間的差異
  • 知道何時使用LAG/LEAD窗口函數
  • 如果在創建復雜的查詢時遇到困難,請嘗試遵循SQL執行順序
  • 考慮潛在的數據問題,例如重復和NULL值
  • 與面試官交流你的思路


責任編輯:華軒 來源: 數據前線
相關推薦

2020-12-24 13:32:31

大數據數據分析SQL

2010-06-17 16:42:04

UML

2009-08-06 17:42:32

C#知識點

2010-08-18 10:52:46

Linux筆試

2021-01-26 09:25:02

Nginx開源軟件服務器

2020-07-01 17:25:28

Redis數據庫內存

2025-05-08 10:25:00

Netty網絡編程框架

2017-12-08 14:26:19

Android面試知識點總結

2014-06-10 13:44:58

iOSUIImage知識點

2022-08-16 15:17:37

機器學習算法模型

2016-12-21 09:55:55

面試JavaScrip總結

2016-05-30 17:31:34

Spring框架

2022-05-18 11:35:17

Python字符串

2010-08-17 14:56:00

HCNE認證

2011-04-15 12:25:21

BGP路由

2019-07-18 08:57:09

Java后端Java基礎

2022-07-20 09:05:06

Python編程語言

2020-03-12 09:06:05

數據挖掘聚類分析學習

2020-10-13 17:50:06

MySQL數據庫代碼

2020-10-13 13:06:14

MySQL數據庫錯誤代碼
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久裸模| 每日更新成人在线视频| 欧美一区二区三区在线看 | 99久久99热这里只有精品| 欧美一区二区三级| 少妇性饥渴无码a区免费| 91九色在线porn| 国产不卡在线一区| 国产精品第三页| 久久久久久久久97| 成人嘿咻视频免费看| 日韩精品一区二区三区中文不卡 | 亚洲国产欧美一区二区三区同亚洲| 欧美精品色婷婷五月综合| 国产激情小视频在线| 成人动漫精品一区二区| 国产欧美一区二区三区在线| 亚洲男人第一av| 天天操综合网| 亚洲片av在线| av av在线| 亚洲狼人在线| 欧洲精品在线观看| 久久久999视频| 激情av在线| ...xxx性欧美| 亚洲精品二区| 理论视频在线| 99在线精品一区二区三区| 亚洲www在线| 亚洲综合免费视频| 水蜜桃久久夜色精品一区的特点| 久久久这里只有精品视频| 精品国产aaa| 国产不卡一区| 日韩理论片久久| 国产免费一区二区三区最新6| 亚洲国产91视频| 欧美午夜精品久久久久久孕妇| 777精品久无码人妻蜜桃| 岛国毛片av在线| 一区二区三区精品视频| 欧美 日韩 国产 在线观看| av在线中文| 久久―日本道色综合久久| 国产一区二区高清视频| 亚洲AV无码精品色毛片浪潮| 狠狠色丁香婷婷综合| 国产精品日韩av| 亚洲久久在线观看| 国产精品日韩| 欧美在线视频观看| 亚洲无码精品一区二区三区| 久久久噜噜噜久久狠狠50岁| 欧美一区二区三区精品电影| 在线观看日韩中文字幕| 久久精品系列| 国产精品高清在线观看| 波多野结衣网站| 男人的天堂亚洲一区| 国产精品视频免费在线观看| 中文字幕视频二区| 久久99精品国产| 亚洲自拍偷拍一区| 亚洲国产www| 成人黄色大片在线观看 | 香蕉国产精品| 欧美伦理91i| 久久精品视频久久| 国产精品一级| 国产精品久久久久免费a∨大胸 | 三级在线观看视频| 欧美性猛交xxxx乱大交极品| 精品久久久久久无码国产| 成人在线视频观看| 91精品国产91综合久久蜜臀| 永久av免费在线观看| 国产图片一区| 亚洲网站在线播放| 麻豆明星ai换脸视频| 欧美日韩国产在线一区| 欧美亚洲成人精品| 中文在线观看免费高清| 国产米奇在线777精品观看| 国产精品一区二区欧美| 九色在线视频蝌蚪| 一区二区中文字幕在线| 国产一级爱c视频| 亚洲成av在线| 日韩免费高清视频| 偷拍夫妻性生活| 亚洲高清影视| 欧美中文在线观看| 国产女人18毛片18精品| 成人av在线网| 在线综合视频网站| 欧美aa免费在线| 欧美猛男超大videosgay| 四虎永久免费观看| 成人中文在线| 韩国欧美亚洲国产| 国产精品福利电影| 久久久精品蜜桃| 日韩成人手机在线| 朝桐光一区二区| 精品国产乱码久久久久久久久| 国产手机在线观看| 黄色亚洲在线| 成人h视频在线观看播放| 亚洲av片一区二区三区| 亚洲欧美日韩系列| 免费看黄色一级大片| 激情亚洲另类图片区小说区| www亚洲欧美| 日韩精品久久久久久免费| 国产精品1024久久| 亚洲美女网站18| 六月婷婷综合| 亚洲国产成人一区| 久久久国产精华液| 国内精品久久久久影院薰衣草| 欧美色欧美亚洲另类七区| 黄色在线看片| 日韩一级高清毛片| 激情五月激情综合| 丝袜亚洲精品中文字幕一区| 国新精品乱码一区二区三区18| 国产三区在线观看| 精品视频1区2区3区| 中文字幕一二三四区| 伊人激情综合| 国产精品swag| 久久免费电影| 日韩欧美在线网站| h色网站在线观看| 久久69国产一区二区蜜臀| 日韩欧美三级电影| 奇米777日韩| 亚洲天堂av在线免费观看| 日本一级一片免费视频| 成人小视频在线| 免费视频爱爱太爽了| 日韩免费成人| 不卡伊人av在线播放| 国产色在线视频| 亚洲精品视频一区| 国产精品久久久久野外| 牛牛国产精品| 不卡一卡2卡3卡4卡精品在| 97caopor国产在线视频| 欧美一区二区久久久| 欧美黄色aaa| 国产成人综合网| 777av视频| 丝袜连裤袜欧美激情日韩| 热99在线视频| 1769视频在线播放免费观看| 欧美日韩中文字幕一区二区| av资源在线免费观看| 狠狠狠色丁香婷婷综合激情 | 川上优av中文字幕一区二区| 亚洲成人网在线观看| 国产成人啪精品午夜在线观看| jlzzjlzz亚洲日本少妇| 国产二区视频在线播放| 国产成人影院| 国产免费成人av| 日韩三级免费| 日韩av在线网址| 国产美女www爽爽爽| 国产精品毛片a∨一区二区三区| 精品亚洲视频在线| 欧美日韩国产一区精品一区| 久久综合婷婷综合| 精品九九久久| 久久久久久国产三级电影| 头脑特工队2免费完整版在线观看| 欧美日韩综合视频| 免费一级suv好看的国产网站| 国产精品亚洲视频| 5月婷婷6月丁香| 久久大综合网| 国产伦精品一区二区三区照片| 午夜激情成人网| 九九久久久久99精品| 天天在线女人的天堂视频| 欧美日韩在线不卡| 日韩激情在线播放| 国产精品网站一区| 男男一级淫片免费播放| 麻豆视频一区二区| 91丨porny丨探花| 日韩电影免费网站| 国产伦精品一区二区三| 成人免费在线观看视频| 高清亚洲成在人网站天堂| 国内三级在线观看| 亚洲а∨天堂久久精品喷水| 91porny九色| 亚洲国产中文字幕| 一区二区三区在线播放视频| aaa国产一区| 五月天婷婷在线观看视频| 中日韩男男gay无套| 色乱码一区二区三区熟女| 蜜桃a∨噜噜一区二区三区| 亚洲tv在线观看| 成人亚洲网站| 国产成人97精品免费看片| 精品一性一色一乱农村| 最好看的2019的中文字幕视频| 国产成人手机在线| 欧美高清视频一二三区| 亚洲 日本 欧美 中文幕| 亚洲国产精品久久不卡毛片| 人妻互换一区二区激情偷拍| 91亚洲资源网| 亚洲欧美高清在线| 国产一区二区三区久久久| 一区二区三区入口| 嫩草成人www欧美| 国产二区视频在线| 欧美日本精品| 日本黄色播放器| 日本黄色精品| 日本午夜精品一区二区| 少妇精品导航| 久久久影院一区二区三区| 丁香一区二区| 国产精品毛片va一区二区三区| 少妇精品在线| 亚洲在线www| 精品一区二区三区免费看| 国产日韩中文在线| 欧美亚洲黄色| 成人xvideos免费视频| 台湾天天综合人成在线| 国产精品视频一区二区高潮| 成人日韩在线观看| 国产精品成久久久久三级| 惠美惠精品网| 国产成人综合精品在线| av一区在线| 国产精品自产拍在线观| 国产一区高清| 成人激情综合网| 91精品国产一区二区在线观看| 成人福利在线观看| 麻豆影院在线| 日韩av影视在线| 日韩中文字幕观看| 精品久久久久久综合日本欧美 | 欧美色精品在线视频| 中日韩在线观看视频| 欧美日本一区二区在线观看| 亚洲影视一区二区| 日韩视频123| 懂色av成人一区二区三区| 亚洲国产成人精品女人久久久 | 免费国产黄色网址| 新67194成人永久网站| 50路60路老熟妇啪啪| 奇米色一区二区| 免费成人黄色大片| 国产69精品久久久久毛片| 香港三日本8a三级少妇三级99| 99re亚洲国产精品| 国产一区二区三区四区五区六区| 国产精品无圣光一区二区| 欧美日韩色视频| 亚洲国产成人91porn| 日本中文字幕在线| 欧美日韩高清一区二区| 成 人 免费 黄 色| 亚洲美女激情视频| 久久日韩视频| 97在线视频国产| 成人精品电影在线| 3d动漫啪啪精品一区二区免费| silk一区二区三区精品视频| 另类欧美小说| 91精品高清| 无遮挡又爽又刺激的视频| 激情文学综合插| 菠萝菠萝蜜网站| 国产精品视频一二三| 一区二区三区影视| 色综合激情久久| 国产精品特级毛片一区二区三区| 亚洲丁香久久久| 日本中文在线观看| 91成人精品网站| 91精品麻豆| 日韩激情久久| 在线国产精品一区| 最新av免费在线观看| 99精品视频在线播放观看| 极品美妇后花庭翘臀娇吟小说| 天天av天天翘天天综合网| 亚洲最大成人在线视频| 日韩av在线最新| 日韩成人伦理| 国产女人18毛片水18精品| 色狠狠久久av综合| 蜜臀av性久久久久蜜臀av| 日韩黄色在线观看| 噜噜噜在线视频| 一区二区三区.www| 艳妇乳肉豪妇荡乳av| 亚洲欧洲视频在线| 韩日毛片在线观看| 国产成人成网站在线播放青青| 久久综合88| 成年人在线观看视频免费| 91丝袜美腿高跟国产极品老师| 亚洲欧美一区二区三区四区五区| 欧美性受xxxx黑人xyx性爽| 天堂在线中文| 97在线日本国产| 国产调教精品| 成人网站免费观看入口| 国产久卡久卡久卡久卡视频精品| 一二三四在线观看视频| 在线亚洲免费视频| 免费福利在线观看| 欧美一级片久久久久久久| 国产精品美女在线观看直播| 日本一二三区视频在线| 国产成人av一区二区三区不卡| 欧美熟妇另类久久久久久多毛| av资源网一区| 精品无码免费视频| 日韩欧美一二区| а√资源新版在线天堂| 91精品国产综合久久香蕉922| av亚洲免费| 国产一区二区成人| 波多野结衣精品| 波多野结衣一区二区三区在线观看| 99久久99热这里只有精品| 鲁一鲁一鲁一鲁一av| 亚洲国产精品成人综合色在线婷婷| aaa在线视频| 色妞欧美日韩在线| 最新亚洲国产| www.69av| 成人性色生活片| 成人午夜视频精品一区| 日韩毛片中文字幕| 免费欧美电影| 在线无限看免费粉色视频| 国内精品国产三级国产a久久| 欧美老熟妇一区二区三区| 日韩欧美国产三级| h片视频在线观看| 久久精品国产精品国产精品污 | 欧美日韩激情视频一区二区三区| 18久久久久久| 欧美裸体在线版观看完整版| wwww.国产| 亚洲视频精选在线| 日本精品999| 青青青国产精品一区二区| 成人高清av| 亚洲精品一区二区18漫画| 午夜伊人狠狠久久| 激情福利在线| 91视频九色网站| 一区二区三区精品视频在线观看| 日韩人妻一区二区三区| 欧美视频一区二区在线观看| 黄色在线观看网站| 国产一区二区三区av在线| 久久久久91| 99久久久免费精品| 亚洲国产日韩欧美综合久久| 免费成人美女女| 看一级黄色录像| 91视频91自| 国产女18毛片多18精品| 97视频在线免费观看| 欧美电影三区| 天天插天天射天天干| 欧美日韩免费不卡视频一区二区三区| 羞羞电影在线观看www| 免费日韩av电影| 国产高清成人在线| 天堂网免费视频| 欧美日韩福利视频| 欧美综合在线视频观看| 国产ts在线观看| 欧美日韩国产综合一区二区| 欧洲黄色一区| 亚洲一区三区视频在线观看| 99久久久国产精品免费蜜臀| 一本色道久久综合精品婷婷| 97国产精品视频| 中文字幕午夜精品一区二区三区 | 色综合综合色| 大尺度在线观看|