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

數據分析——SQL面試知識點總結

大數據 數據分析
SQL面試問題旨在評估應聘者的技術和解決問題的能力。本文主要介紹了在 SQL 面試問題中常見的模式,并提供一些 SQL 查詢中巧妙如何處理它們的技巧。

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

 

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

 

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

[[359831]]

問問題

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

 

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

 

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

 

舉例:

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


樣本employee_salary表

 

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

 

選哪一個join


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

 

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

 

舉例:

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


樣本student和class_history表

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

 

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

  1. WITH class_count AS ( 
  2. SELECT student_id, COUNT(*) AS num_of_class 
  3. FROM class_history 
  4. GROUP BY student_id 
  5. SELECT  
  6. c.student_id, 
  7. s.student_name, 
  8. c.num_of_class 
  9. FROM class_count c 
  10. -- CASE 1: include only active students 
  11. JOIN student s ON c.student_id = s.student_id 
  12. -- CASE 2: include all students 
  13. -- LEFT JOIN student s ON c.student_id = s.student_id 
  14.  

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來實現。合起來是下面這樣:

  1. SELECT  
  2. student_id, 
  3. school_year, 
  4. AVG(gpa) AS avg_gpa 
  5. FROM gpa_history 
  6. WHERE is_required = TRUE  
  7. GROUP BY student_id, school_year 
  8. HAVING AVG(gpa) >= 3.5 

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

 

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之前執行的步驟中引用它。

 

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

 

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 名薪水最高的員工,而不論他們的關系如何,如下:

  1. WITH T AS ( 
  2. SELECT  
  3. *, 
  4. ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY employee_salary DESCAS rank_in_dep 
  5. FROM employee_salary) 
  6. SELECT * FROM T 
  7. WHERE rank_in_dep <= 3  
  8. -- 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結果比較

 

重復項

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

 

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

 

例如:

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

 

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

 

舉例:

使用 employee_salary 表查找每個部門所有員工的總薪水。

正確的解決方案是 GROUP BY employee_id,然后使用 SUM(employee_salary) 計算總薪水。如果需要雇員姓名,請在末尾與 employee 表聯接以檢索雇員姓名信息。

錯誤的方法是使用 GROUP BY employee_name。

 

NULL

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

 

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

 

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

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

 

交流

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

 

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

 

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

 

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

 

總結

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

 

責任編輯:梁菲 來源: 職坐標在線
相關推薦

2010-08-18 10:52:46

Linux筆試

2022-07-20 00:15:48

SQL數據庫編程語言

2019-07-10 15:46:05

大數據數據庫信息安全

2017-12-08 14:26:19

Android面試知識點總結

2016-12-21 09:55:55

面試JavaScrip總結

2010-06-17 16:42:04

UML

2009-08-06 17:42:32

C#知識點

2009-12-18 17:34:38

Ruby線程

2020-07-01 17:25:28

Redis數據庫內存

2020-10-14 12:45:00

數據庫MySQL內存

2014-06-10 13:44:58

iOSUIImage知識點

2022-08-16 15:17:37

機器學習算法模型

2010-05-26 10:32:47

SVN管理

2025-04-01 08:25:00

OSPF網絡IT

2021-11-03 11:58:44

分布式事務面試

2016-05-30 17:31:34

Spring框架

2010-08-17 14:56:00

HCNE認證

2011-04-15 12:25:21

BGP路由

2013-02-25 10:44:13

數據分析大數據關聯分析

2021-12-01 09:25:58

SQL數據庫數據庫基礎
點贊
收藏

51CTO技術棧公眾號

欧美精品videosex牲欧美| 在线视频你懂得一区| 99r国产精品视频| 国产一级淫片a| 亚洲盗摄视频| 精品污污网站免费看| 日产精品久久久久久久蜜臀| 亚洲国产精品久久久久久6q| 久久国产精品亚洲77777| 中文字幕在线成人| 国产高潮视频在线观看| 欧美专区福利免费| 一区二区三区中文字幕电影| 粉嫩av一区二区三区免费观看| 国产亚洲欧美在线精品| 午夜久久99| 亚洲欧美中文日韩在线v日本| 日韩不卡的av| 精品无人乱码一区二区三区| 亚洲午夜一区二区三区| 一本久道久久综合狠狠爱亚洲精品| 高清一区二区三区四区| 久久99蜜桃精品| 日韩女在线观看| 国产精品不卡av| 五月精品视频| 在线播放日韩欧美| 国产精品边吃奶边做爽| 亚洲va欧美va人人爽成人影院| 在线观看亚洲精品| 116极品美女午夜一级| 国产黄色小视频在线| 久久蜜桃av一区精品变态类天堂 | 亚洲国产精品一区二区第四页av| 国产91麻豆视频| 国内久久精品视频| 国产欧美一区二区白浆黑人| 国产成人综合欧美精品久久| 亚洲经典在线| 欧美激情18p| 暗呦丨小u女国产精品| 欧美系列电影免费观看 | 白丝女仆被免费网站| 国产女人18毛片水真多18精品| 日韩视频一区二区在线观看| 拔插拔插华人永久免费| 欧美xxxx性| 在线观看一区二区视频| 无需播放器的av| 欧美不卡高清一区二区三区| 日本韩国欧美国产| 日本女优爱爱视频| 日本在线视频一区二区| 欧洲国产伦久久久久久久| 人妻无码视频一区二区三区 | 在线观看三级视频欧美| 可以免费在线看黄的网站| 日韩成人亚洲| 欧美日韩精品福利| 伊人免费视频二| 欧美久久一区二区三区| 精品国产免费久久| 国产精品第七页| 国产成人短视频在线观看| 亚洲美女黄色片| 久久久免费看片| 97久久夜色精品国产| 久久精品国产69国产精品亚洲| 欧美一区二区三区爽爽爽| 欧美fxxxxxx另类| 高清在线视频日韩欧美| 韩国av中文字幕| 日韩av一二三| 99久热re在线精品视频| 日本五码在线| 国产精品久久久久久久蜜臀| 4444在线观看| 亚洲精品福利电影| 欧美日韩国产精选| 国产精品嫩草69影院| 国产一区福利| 亚洲精品在线不卡| 中文字幕美女视频| 亚洲国产日韩欧美一区二区三区| 国产成人精品久久久| 一级黄在线观看| 成人黄色a**站在线观看| 欧美极品日韩| 激情影院在线观看| 精品久久久久久久久中文字幕| xxxx一级片| 亚洲高清999| 亚洲色图35p| 久草成人在线视频| 日韩高清在线电影| 国产精品av一区| av在线1区2区| 欧美午夜精品伦理| 中文字幕第三区| 狠狠色狠狠色综合婷婷tag| 久久av在线看| japanese国产在线观看| 丰满白嫩尤物一区二区| 五月婷婷一区| 涩涩av在线| 日韩写真欧美这视频| 无码一区二区三区在线| 在线免费高清一区二区三区| 国产精品午夜视频| 神马电影在线观看| 一区二区在线观看免费| 一女二男3p波多野结衣| 亚洲区小说区| 久久久久日韩精品久久久男男| 亚洲一区中文字幕永久在线| 91亚洲国产成人精品一区二区三| 91免费版看片| 日本欧美在线| 尤物99国产成人精品视频| 日韩欧美国产亚洲| 粉嫩av一区二区三区在线播放| 在线不卡日本| 成人国产激情| 亚洲人在线视频| www.国产成人| 福利91精品一区二区三区| 99热一区二区三区| 亚洲欧美专区| 日韩在线免费观看视频| 欧美男人亚洲天堂| 91免费小视频| 欧美一级在线看| 国产成人高清精品免费5388| 美女av一区二区| 亚洲图片小说视频| 国产丝袜美腿一区二区三区| 草草久久久无码国产专区| 草草视频在线一区二区| 久久99国产综合精品女同| 国产精品久久婷婷| 亚洲欧洲三级电影| 亚洲18在线看污www麻豆| 色婷婷综合网| 成人在线精品视频| www.久久久久.com| 日韩视频免费观看高清在线视频| 国产视频精品免费| 国模一区二区三区白浆| 手机在线视频你懂的| 中文字幕综合| 欧美成人在线网站| 性一交一乱一精一晶| 艳妇臀荡乳欲伦亚洲一区| 又色又爽又黄18网站| 欧美性久久久| 久久波多野结衣| 在线观看精品| 中文字幕一区二区三区电影| 国产精品久久久久久在线| 亚洲三级久久久| 黄页网站在线看| 99日韩精品| 秋霞在线观看一区二区三区| 亚洲mmav| 久久久精品久久| 成人久久精品人妻一区二区三区| 亚洲国产精品自拍| 毛片网站免费观看| 蜜桃在线一区二区三区| 超碰超碰超碰超碰超碰| 另类尿喷潮videofree| 国产成人精品视| 久草资源在线| 亚洲国产精品热久久| 中文字幕永久在线| 亚洲精品日产精品乱码不卡| 中文字幕无码人妻少妇免费| 蜜臀av一区二区| 日韩专区第三页| 色婷婷综合久久久久久| 国产在线精品播放| 国产传媒在线观看| 最近2019中文免费高清视频观看www99 | 日韩欧美在线视频| 精品亚洲乱码一区二区| av电影一区二区| 国内外成人免费在线视频| 欧美日韩ab| 欧美aaaaa喷水| 国产一区二区视频在线看| 91av国产在线| www视频在线免费观看| 日韩高清不卡av| 一区二区三区午夜| 欧美视频在线视频| 黑人巨大精品一区二区在线| ww亚洲ww在线观看国产| 欧洲美女亚洲激情| 亚洲欧美日韩国产综合精品二区| 资源网第一页久久久| 久久精品论坛| 亚洲在线第一页| 蜜桃视频成人m3u8| 国内精品久久久久久中文字幕| av在线收看| 日韩二区三区在线| 性做久久久久久久| 欧美三级韩国三级日本一级| 黄网在线观看视频| 亚洲精品美国一| 国产精品suv一区二区88| 97久久精品人人澡人人爽| 亚洲av毛片在线观看| 免费成人在线视频观看| 91av资源网| 亚洲三级电影在线观看| 欧美一级黄色录像片| 欧美日韩国产一区二区三区不卡| 精品国产一区二区三区麻豆小说| av日韩久久| 国产欧美精品一区二区三区介绍| 另类专区亚洲| 97人人模人人爽人人喊中文字| yellow91字幕网在线| 日韩中文娱乐网| 超碰免费在线观看| 亚洲欧美日韩国产中文专区| 亚欧洲精品视频| 亚洲激情免费观看| 日本人妻丰满熟妇久久久久久| 欧美一区二区三区白人| 91tv国产成人福利| 欧美日韩国产在线观看| 不卡av电影在线| 欧美日韩在线影院| 日韩黄色在线播放| 欧美午夜精品在线| 无码人妻久久一区二区三区不卡| 日本韩国精品在线| 国产黄色免费视频| 在线观看不卡视频| 中日精品一色哟哟| 欧美狂野另类xxxxoooo| 91精品国产色综合久久不8| 欧美三级视频在线| 国产美女免费视频| 日韩欧美aaaaaa| 粉嫩av一区二区夜夜嗨| 亚洲国内精品视频| 青青青草网站免费视频在线观看| 亚洲欧美激情四射在线日| 久久经典视频| 中文字幕精品在线| 国产网友自拍视频导航网站在线观看 | 91夜夜未满十八勿入爽爽影院| 95精品视频| 成人资源av| 激情亚洲另类图片区小说区| 麻豆传媒一区二区| 成人3d精品动漫精品一二三| 自拍偷拍视频在线| 狠狠爱综合网| 一区二区传媒有限公司| 日韩国产高清在线| 免费高清视频在线观看| 成人国产精品免费网站| 深爱五月激情网| 日韩毛片精品高清免费| 久久久久久久久久一区二区三区| 午夜欧美大尺度福利影院在线看| 中文字幕在线欧美| 欧美二区三区91| 天天综合在线视频| 最近2019年手机中文字幕| 久久青青色综合| 国产精品爱啪在线线免费观看| 亚洲欧美在线综合| 精品不卡在线| 欧美成人精品一区二区三区在线看| 国产a级黄色大片| 国产亚洲激情| 永久免费黄色片| 91尤物视频在线观看| 成人一级黄色大片| 精品日本美女福利在线观看| 97超碰人人草| 日韩成人在线网站| 黄网页免费在线观看| 68精品久久久久久欧美 | 日韩一区二区不卡| 欧美日韩激情视频一区二区三区| 久久久精品免费视频| 黑人巨大精品| 成人片在线免费看| 不卡一区综合视频| 免费看国产曰批40分钟| 极品美女销魂一区二区三区| 国产精品无码久久久久久| 一区二区日韩电影| 在线免费观看日韩视频| 亚洲精品久久7777777| 国内精品久久久久久野外| 欧美又大又硬又粗bbbbb| 麻豆视频久久| 亚洲图片小说在线| 久久久久99| 无码精品一区二区三区在线播放| 成人免费一区二区三区视频| 欧美a视频在线观看| 欧美xxxxxxxxx| 免费观看久久久久| 国产盗摄xxxx视频xxx69| 精品久久ai| a级免费在线观看| 国模大尺度一区二区三区| 成人激情五月天| 欧美性猛交xxxx富婆弯腰| 内射后入在线观看一区| 久久高清视频免费| 日韩成人在线一区| 亚洲国产精品www| 日日夜夜精品视频免费| 97人妻天天摸天天爽天天| 亚洲v中文字幕| 亚洲av无码乱码国产精品| 久久国产精品久久国产精品| 国产精区一区二区| 中文字幕一区二区三区乱码 | jizz中文字幕| 色视频一区二区| 视频二区在线| 欧美亚洲另类在线| 性欧美xxxx免费岛国不卡电影| 无码专区aaaaaa免费视频| 成人激情免费电影网址| 精品在线视频免费| 欧美精品一区视频| 91破解版在线观看| 国产一区免费观看| 国产欧美日韩一区二区三区在线| 国产xxxxxxxxx| 色一情一伦一子一伦一区| 黄上黄在线观看| 国产精品久久久久久久久久久新郎 | 日产欧产va高清| 亚洲国产成人精品久久| 人狥杂交一区欧美二区| 免费中文日韩| 日韩精品亚洲一区| 九一在线免费观看| 欧美精品在线观看播放| 国产秀色在线www免费观看| 91精品免费| 国产亚洲精品v| 一级黄色片大全| 欧美日韩色一区| caoporn97在线视频| 国产成人精品福利一区二区三区 | 国产噜噜噜噜久久久久久久久| 忘忧草精品久久久久久久高清| 精品人妻人人做人人爽夜夜爽| 亚洲第一福利一区| 蜜芽tv福利在线视频| 国产一区二区视频在线观看| 欧美成人高清| 日本xxxx裸体xxxx| 欧美日韩精品一区二区三区 | 日本二三区不卡| 九色porny在线| 国产精品视频免费一区二区三区| 六月天综合网| 91麻豆精品成人一区二区| 精品乱人伦一区二区三区| 天堂av在线网| youjizz.com亚洲| av一区二区不卡| 中文字幕+乱码+中文乱码91| 欧美丰满少妇xxxxx做受| 亚洲欧美成人vr| 自拍一级黄色片| 色呦呦国产精品| 黄网站免费在线播放| 久草精品电影| 韩国欧美一区二区| www.日本精品| 欧美成人高清视频| 国产精品美女久久久久久不卡| 欧美体内she精高潮| 色综合天天综合| 深夜国产在线播放| 日韩理论片在线观看| 国产91精品久久久久久久网曝门| 亚洲精品一区二三区| 国内精品久久久久久影视8| 国产精品成人一区二区不卡| 国产精品福利导航| 欧美一区二区三区白人| 成人mm视频在线观看| 亚洲熟妇无码一区二区三区| 亚洲欧洲99久久|