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

SQL,從入門到熟練

數據庫
在《寫給新人的數據庫指南》,我們已經成功的安裝數據庫,并且導入數據,今天進入SQL實戰練習。SQL是數據庫的查詢語言,語法結構簡單,相信本文會讓你從入門到熟練。

本文是《如何七周成為數據分析師》的第十篇教程,如果想要了解寫作初衷,可以先行閱讀七周指南。溫馨提示:如果您已經熟悉數據庫,大可不必再看這篇文章,或只挑選部分。

在《寫給新人的數據庫指南》,我們已經成功的安裝數據庫,并且導入數據,今天進入SQL實戰練習。SQL是數據庫的查詢語言,語法結構簡單,相信本文會讓你從入門到熟練。

掌握SQL后,不論你是產品經理、運營人員或者數據分析師,都會讓你分析的能力邊界無限拓展。別猶豫了,趕快上車吧!

以下的語句都在SequelPro的Query頁面運行,其他操作頁面不會有太大差異。標點符號必須為英文,這是新人很容易犯的錯誤。

SQL最小化的查詢結構如下:

  1. select column from table 

table是我們的表名,column是我們想要查詢的字段/列,column可以用 * 代替,指代全部字段,意為從table表查詢所有數據。

where 是基礎查詢語法,用于條件判斷。

  1. select * from DataAnalyst 
  2.  
  3. where city = '上海'  

 

 

 

上圖是最簡化的查詢語句,將所有城市為上海的職位數據過濾出來。我們也可以用 and 進行多條件判斷。

  1. select * from DataAnalyst 
  2.  
  3. where city = '上海' and positionName = '數據分析師'  

or 語句則是或的關系

  1. select * from DataAnalyst 
  2.  
  3. where city = '上海' or positionName = '數據分析師'  

查找城市為上海,或者職位名稱是數據分析師的數據,它們是并集。

當我們涉及到非常復雜的與或邏輯判斷,應該怎么辦?比如即滿足條件AB,又要滿足條件C,或者是滿足條件DE。此時需要用括號明確邏輯判斷的優先級。

  1. select * from DataAnalyst 
  2.  
  3. where (city = '上海' and positionName = '數據分析師'or (city = '北京' and positionName = '數據產品經理' 

這條語句的含義是查找出上海的數據分析師或者是北京的產品經理。當有括號時,會優先進行括號內的判斷,當有多個括號時,對最內層括號先進行判斷,然后依次往外。

接下來的問題來了,當我們要查詢多個條件,比如北京上海廣州深圳南京這些城市,難道一個個用and關聯起來?這太麻煩了,我們可以使用 in 。

  1. select * from DataAnalyst 
  2.  
  3. where city in ('北京','上海','廣州','深圳','南京' 

當我們遇到字段數據類型是數值時,也可以使用符號> 、>=、< 、<=、!= 進行邏輯判斷,!= 指的是不等于,等價于 <> 。

  1. select * from DataAnalyst 
  2.  
  3. where companyId >= 10000  

上例是篩選出公司ID >= 10000的職位,為數值時,不需要像字符串一樣加引號。

當我們需要取區間數值時,使用 between and

  1. select * from DataAnalyst 
  2.  
  3. where companyId between 10000 and 20000  

between and 包括數值兩端的邊界,等同于 companyId >=10000 and companyId <= 20000。

如果要模糊查找,能用like。

  1. select * from DataAnalyst 
  2.  
  3. where positionName like '%數據分析%'  

語句的含義是在positionName列查找包含「數據分析」字段的數據,%代表的是通配符,含義是無所謂「數據分析」前面后面是什么內容。如果是 '數據分析%' ,則代表字段必須以數據分析開頭,無所謂后面是什么。

除了上面所講,還有一個常用的語法是not,代表邏輯的逆轉,常見not in、not like、not null等。

接下來我們學習group by,它是數據分析中常見的語法,目的是將數據按組/維度劃分。類似于Excel中的數據透視表,我們以city為例。

  1. select * from DataAnalyst 
  2.  
  3. group by city   

 

 

 

它將城市劃分成幾組,通過group by 可以快速的瀏覽數據有哪些城市。我們看一下它的高階用法。

  1. select city,count(1) from DataAnalyst 
  2.  
  3. group by city 

 

 

 

上述語句,使用count函數,統計計數了每個城市擁有的職位數量。括號里面的1代表以第一列為計數標準。這里出現新的問題,當我們遇到重復數據怎么辦?在DataAnalyst 這張表中,北京職位包含重復的職位ID,我們需要去重。

  1. select city,count(distinct positionId) from DataAnalyst 
  2.  
  3. group by city  

 

 

 

北京的數據一下子少了2000,多余的重復值被排除在外。distinct 是去重函數,distinct positionId 會只計算唯一的positionId個數。日常工作中,活躍用戶數、文章UV,都是用distinct 計算獲得,這是唯一標示符ID的重要作用。

除了count,還有max,min,sum,avg等函數,也叫做聚合函數。用法和Excel沒什么區別。

當我們在group by 添加多個字段,它將以多維的形式進行數據聚合。

  1. select city,workYear,count(distinct positionId) from DataAnalyst 
  2.  
  3. group by city,workYear   

 

 

 

這就是數據分析師常用的多維分析法,通過group by 切分不同的維度進行對比,在不利用BI的情況下,通過SQL進行快速數據分析。

接下來學習邏輯判斷,SQL也有if函數,和Excel的用法一摸一樣,通過它我們能進行復雜的運算。比如我想統計各個城市中有多少數據分析職位,其中,電商領域的職位有多少,在其中的占比?

industryField是公司的行業領域,雖然我們能用where like 計算出有幾個電商的數據分析師,但是占比的計算會比較麻煩,此時可以用if。

  1. select if(industryField like '%電子商務%',1,0) from DataAnalyst  

 

 

 

上面的公式利用if判斷出哪些是電商行業的數據分析師,哪些不是。if函數中間的字段代表為true時返回的值,不過因為包含重復數據,我們需要將其改成positionId。之后,用它與group by 組合就能達成目的了。

  1. select city, 
  2.  
  3. count(distinct positionId), 
  4.  
  5. count(if(industryField like '%電子商務%',positionId,null)) 
  6.  
  7. from DataAnalyst 
  8.  
  9. group by city  

 

 

 

第一列數字是職位總數,第二列是電商領域的職位數,相除就是占比。記住,count是不論0還是1都會納入計數,所以第三個參數需要寫成null,代表不是電商的職位就排除在計算之外。

接下來是新的問題,如果我想找出各個城市,數據分析師崗位數量在500以上的城市有哪些,應該怎么計算?有兩種方法,第一種,是使用having語句,它對聚合后的數據結果進行過濾。

  1. select city,count(distinct positionId) from DataAnalyst 
  2.  
  3. group by city having count(distinct positionId) >= 500   

 

 

 第二種,是利用嵌套子查詢。 

 

 

 

我們將第一次查詢獲得的城市職位數的結果,看作一張新的表,利用as 將它命名為t1( table1 的簡寫),將職位數命名為一個新的字段counts。然后外面再套一層select 過濾出counts >=500。

這種查詢方式就叫嵌套子查詢,使用場景比較廣泛,where 后面也能跟子查詢。

很多時候,數據是凌亂的,我們希望結果能夠呈現一定的順序,這時候就用到order by語句。

  1. select city,count(distinct positionId) as counts from DataAnalyst 
  2.  
  3. group by city 
  4.  
  5. order by counts  

 

 

 

看,數據就按照統計結果升序排列,如果需要降序,則是order by counts desc,后面加一個desc就好了。如果是多個字段,按逗號分隔即可。

我們再來熟悉SQL的常用函數,首先是時間。因為我們的練習數據中沒有時間,首先用now創建出一個時間字段。

  1. select now() 

直接執行它,就能獲得當前的系統時間,精確到秒。其實select不一定后面要跟from。

  1. select date(now()) 

它代表的是獲得當前日期,week函數獲得當前第幾周,month函數獲得當前第幾個月。其余還包括,quarter,year,day,hour,minute。

時間函數也包含各種參數,比如week,因為中西方計算第幾天是不一樣的,西方把周日算作一周中的第一天,而我們習慣周一。

  1. select week(now(),0) 

除了以上的日期表達,也可以使用dayofyear、weekofyear 的形式計算。它和上面的部分函數等價。

怎么對時間進行加減法呢?這時候靠date_add函數出馬。

  1. select date_add(date(now()) ,interval 1 day 

 

 

 

我們可以改變1為負數,達到減法的目的,也能更改day為week、year等,進行其他時間間隔的運算。如果是求兩個時間的間隔,則是datediff(date1,date2)或者timediff(time1,time2)。

時間函數的運用比較靈活,沒有特殊限定,網絡上的文檔和教程也不少,可以深入學習。

最后是數據清洗類的函數。

  1. select left(salary,1) from DataAnalyst 

MySQL支持left、right、mid等函數,這里又和Excel一樣。我們通過salary計算數據分析師的工資吧(這一步驟,在曾經的文章中已經用Excel和BI多次講解,所以我就不多贅述了,只講過程,不熟悉的同學可以看歷史內容)。

首先利用locate函數查找第一個k所在的位置。

  1. select locate("k",salary),salary from DataAnalyst 

 

 

然后使用left函數截取薪水的下限。

  1. select left(salary,locate("k",salary)-1),salary from DataAnalyst  

 

 

 

為了獲得薪水的上限,要用substr函數,或者mid,兩者等價。

  1. substr(字符串,從哪里開始截,截取的長度) 

薪水上限的開始位置是「-」位置往后推一位。截取長度是整個字符串減去「-」所在位置,剛好是后半段我們需要的內容,不過這個內容是包含「K」的,所以最后結果還得再減去1。 

 

 

 

這里不了解不要緊,可以將計算過程分步驟運行。基本上,了解了上面寫法的含義,文本清洗這塊就沒有問題了(not like用來清洗亂七八糟的薪水,我簡單處理了)。再然后計算不同城市不同工作年限的平均薪資。 

 

 

 

上面語句,我們用了文本清洗、子查詢嵌套、分組聚合、排序等多種用法,屬于較復雜的查詢。重復數據的問題,因為我是復制了一份北京數據,數量剛好乘二,對平均數沒有影響,感興趣的朋友可以再加一步清洗掉它。

下面是三道思考題:

查詢出哪家公司招聘的崗位數最多;

查詢出O2O、電子商務、互聯網金融這三個行業,哪個行業的平均薪資最高;

查詢出各城市的最高薪水Top3是哪家公司哪個崗位。

做完上面的題目,你已經神功初成,數據分析的SQL意見沒有大問題了。更復雜的查詢,也無非是嵌套更多的內容,本質思路是一樣的。

講到這里,只剩join語法還沒有教大家。因為練習數據只有一張表,而join又是SQL中比較容易混淆的難點,我會單獨開一篇內容講解,到時候使用SQLZoo和LeetCode的案例。

LeetCode是知名的算法競賽網站,可以在上面和全世界的程序員比拼算法,當然我們只練習SQL,完成后,至少能秒殺全世界50%的程序員吧。 

責任編輯:龐桂玉 來源: 秦路
相關推薦

2024-03-25 09:40:31

計算系統

2012-02-29 00:49:06

Linux學習

2025-02-24 10:07:10

2013-06-06 13:42:48

OSPF入門配置

2022-06-10 08:17:52

HashMap鏈表紅黑樹

2022-10-20 08:02:29

ELFRTOSSymbol

2010-02-06 15:31:18

ibmdwAndroid

2009-07-22 14:55:16

ibmdwAndroid

2016-12-08 22:39:40

Android

2017-05-09 08:48:44

機器學習

2021-09-01 22:58:22

Canvas標簽

2021-02-21 22:53:01

CanvasHTML5JavaScript

2019-07-02 14:17:18

API網關網關流量

2024-07-03 10:09:29

2021-11-29 14:18:05

Nuxt3靜態Nuxt2

2021-12-12 18:15:06

Python并發編程

2022-09-02 15:11:18

開發工具

2024-02-26 08:52:20

Python傳遞函數參數參數傳遞類型

2017-01-03 16:57:58

2010-11-08 10:20:18

點贊
收藏

51CTO技術棧公眾號

日韩精品看片| 日韩毛片免费看| 国产日本亚洲高清| 成人国产精品免费视频| 免费在线一级片| 亚洲盗摄视频| 欧美一区二区视频在线观看| 欧美,日韩,国产在线| 国产高清一区在线观看| 国产盗摄视频一区二区三区| 国产成人精品电影久久久| 亚洲女人久久久| 亚洲伊人春色| 日韩亚洲欧美中文三级| 国产视频在线视频| 金瓶狂野欧美性猛交xxxx| 国产精品毛片大码女人| 国产在线一区二区三区欧美| 国产精品视频在线观看免费| 老鸭窝91久久精品色噜噜导演| 理论片在线不卡免费观看| 成人网站免费观看| 在线视频亚洲欧美中文| 欧美精选午夜久久久乱码6080| 干日本少妇首页| 午夜av在线免费观看| 国产精品拍天天在线| 噜噜噜噜噜久久久久久91| 国产激情视频在线播放| 美国三级日本三级久久99| 欧美亚洲另类制服自拍| 精品无码m3u8在线观看| 中文无码久久精品| zzijzzij亚洲日本成熟少妇| 波多野结衣 在线| 国产精品tv| 日韩欧美色综合| 在线免费看污网站| 91国拍精品国产粉嫩亚洲一区| 五月天中文字幕一区二区| 天天操天天干天天玩| av福利在线播放| 久久综合久久综合亚洲| 精品一区二区不卡| 污视频网站免费观看| 国产成人三级在线观看| 亚洲精品欧美日韩专区| 91在线视频国产| 蜜臀a∨国产成人精品| 国产成人精品久久久| 久久久久在线视频| 久久久人人人| 国产成人精品免费视频| 日韩免费av网站| 丝袜美腿亚洲一区| 国产精品99久久久久久人| 日本熟女毛茸茸| 国产精品久久久久久久免费软件| 久久久之久亚州精品露出| 久久综合综合久久| 亚洲久久在线| 欧美在线免费观看| 亚洲精品成人在线视频| 日韩av成人高清| 国产精品自拍偷拍| 97人妻精品一区二区三区动漫 | 色青青草原桃花久久综合| 色噜噜日韩精品欧美一区二区| 色爱av综合网| 永久免费毛片在线播放不卡| 九九热免费在线| 99久久亚洲精品蜜臀| 美女福利精品视频| 久久国产一级片| 国产欧美一区二区色老头 | 三级网站在线播放| 日本vs亚洲vs韩国一区三区二区| 国产精品视频久| 99在线无码精品入口| 大尺度一区二区| 久久综合色一本| 中文字幕在线免费| 亚洲国产视频网站| 欧美成人黑人猛交| www999久久| 亚洲国产精品久久精品怡红院 | 亚洲同性同志一二三专区| 337p亚洲精品色噜噜狠狠p| 1024在线看片你懂得| 在线影视一区二区三区| 超碰91在线播放| 欧美亚洲tv| 久久好看免费视频| 亚洲 欧美 日韩 综合| 美洲天堂一区二卡三卡四卡视频| 97免费高清电视剧观看| 日本精品专区| 亚洲免费三区一区二区| 国产美女三级视频| 国产精品一区二区美女视频免费看 | 国产欧美一区二区精品婷婷| 肉大捧一出免费观看网站在线播放| 91超碰在线| 欧美精品免费视频| 麻豆av免费观看| 欧美精品观看| 国产精品久久久久久久久久ktv | 深夜福利一区二区三区| 亚洲欧洲日韩国产| 久久久久久久伊人| 理论片日本一区| 久久综合中文色婷婷| 神马午夜伦理不卡| 欧美日韩国产精品成人| 免费在线观看你懂的| 你懂的网址国产 欧美| 国产精品日韩欧美大师| 毛片在线能看| 天天色 色综合| 亚洲一区二区三区四区精品| 欧洲杯半决赛直播| 热久久这里只有| 好吊色在线观看| 亚洲精品日韩专区silk| 日本三级黄色网址| 国产探花一区在线观看| 欧美一区二区三区免费视| 人妻91麻豆一区二区三区| 亚洲欧美一区二区久久| 岛国毛片在线播放| 精品国产91乱码一区二区三区四区 | 呻吟揉丰满对白91乃国产区| 久久精品一区| 麻豆成人小视频| 国产理论在线| 精品国产髙清在线看国产毛片| 日本黄色片免费观看| 麻豆精品视频在线| 亚洲午夜精品一区二区三区| 国产精品无码久久久久| 日韩国产中文字幕| 97超碰人人干| 97精品电影院| www.中文字幕在线| 欧美一级一片| 热re91久久精品国99热蜜臀| 青青青草网站免费视频在线观看| 欧美日韩久久久久| 强迫凌虐淫辱の牝奴在线观看| 激情av一区| 粉嫩精品一区二区三区在线观看 | 亚洲国产精品一区二区久久| 国产老头和老头xxxx×| 狠狠综合久久av一区二区老牛| 99国产在线视频| 高清电影在线观看免费| 精品久久五月天| 日韩欧美亚洲视频| 91美女片黄在线| 成人免费视频久久| 999久久久精品国产| 91久久在线视频| 欧美人与性动交α欧美精品济南到| 日韩欧美国产精品| 在线看成人av| 久久中文字幕电影| 孩娇小videos精品| 欧美日韩免费| 九色91视频| 日本成人片在线| 久久精品视频在线观看| 国产 欧美 自拍| 日韩欧美国产高清91| 天天舔天天操天天干| 国产又粗又猛又爽又黄91精品| 欧美一级特黄aaaaaa在线看片| 91成人精品在线| 欧美在线精品免播放器视频| 米奇精品一区二区三区| 日韩欧美国产一区二区三区| 亚洲熟女综合色一区二区三区| 中文字幕va一区二区三区| 亚洲国产午夜精品| 亚洲欧美日本日韩| 老司机av福利| 亚州国产精品| 成人乱人伦精品视频在线观看| 性xxxfreexxxx性欧美| 日韩高清人体午夜| 国产精品老熟女视频一区二区| 亚洲国产精品久久人人爱| 国产精品毛片一区二区| 另类小说一区二区三区| 国内自拍在线观看| 一级欧洲+日本+国产| 欧美日韩国产一二| 涩涩屋成人免费视频软件| 国产精品高潮在线| gogo久久| www国产精品com| 日韩欧美亚洲系列| 日韩精品一区二区三区swag| 最近中文在线观看| 精品magnet| 久久r这里只有精品| 国产欧美综合在线| 女同性恋一区二区三区| 国产乱码精品1区2区3区| 国产综合免费视频| 亚洲一级二级| 国产美女视频免费| 欧美限制电影| 女同一区二区| 都市激情亚洲| 92看片淫黄大片欧美看国产片| 精品91久久| 性色av一区二区三区| 在线播放免费av| www.欧美免费| 在线看的av网站| 亚洲欧洲在线观看| 天天操天天干天天操| 日韩欧美二区三区| 99热这里只有精品在线| 欧美日本不卡视频| 中文字幕一区二区人妻| 一本到不卡免费一区二区| 国产成人无码一区二区三区在线| 一区二区三区中文字幕电影| 国产极品美女在线| 国产精品电影一区二区| 91精品国自产在线| 国产香蕉久久精品综合网| 亚洲成人日韩在线| 91在线观看视频| 中文字幕 日本| 91免费在线看| 一级特级黄色片| 97国产精品videossex| 日本人添下边视频免费| 成人av综合在线| 中文字幕乱视频| 东方欧美亚洲色图在线| av电影中文字幕| 北岛玲一区二区三区四区| 国产女人18毛片水真多18| 成年人网站91| 国产精品无码一区二区三区| 久久久久久久精| 美女被到爽高潮视频| 日本一区二区视频在线观看| 精品人妻中文无码av在线| 国产精品美女久久久久久 | 一区二区影院| 四虎4hu永久免费入口| 亚洲视频碰碰| 黄色一级片播放| 日韩精品电影一区亚洲| 一区二区在线播放视频| 精品一区免费av| 亚洲熟女乱综合一区二区| 成人综合婷婷国产精品久久蜜臀| 天堂www中文在线资源| 91丨九色丨黑人外教| av网站免费在线看| 亚洲欧洲日本在线| 久久免费小视频| 欧美天天综合色影久久精品| 午夜一级黄色片| 欧美一区日韩一区| 日韩在线视频免费| 在线观看成人黄色| av网址在线看| 18一19gay欧美视频网站| 秋霞国产精品| 91视频免费在线观看| 欧美日韩爱爱| 国产成人三级视频| 国产精品亚洲欧美| 国产aⅴ爽av久久久久| av日韩在线网站| 日本猛少妇色xxxxx免费网站| 亚洲乱码国产乱码精品精98午夜| 日韩欧美亚洲视频| 欧美日韩大陆一区二区| 黄色福利在线观看| 亚洲一二三在线| 色www永久免费视频首页在线| 国产福利精品av综合导导航| 欧美日韩国产一区二区在线观看| 欧美成人综合一区| 欧美激情五月| 日本美女高潮视频| av中文字幕亚洲| 欧美丰满熟妇bbbbbb| 岛国精品视频在线播放| 国产亲伦免费视频播放| 亚洲男人天堂网站| 五月花成人网| 国产在线高清精品| 你懂的一区二区三区| 日韩成人三级视频| 美国一区二区三区在线播放| 欧美精品欧美极品欧美激情| 亚洲视频你懂的| 欧美男人天堂网| 亚洲国产另类久久精品| av在线导航| 成人福利视频网| 国产精品三级| 亚洲熟妇国产熟妇肥婆| 国产精品一二三四| 国产精品久久国产精麻豆96堂| 色综合久久久久综合99| 人妻丰满熟妇av无码区hd| 欧美久久久精品| 免费视频观看成人| 日本精品一区二区三区不卡无字幕| 伊人久久综合| 制服.丝袜.亚洲.中文.综合懂| 国产精品乱码一区二区三区软件| jizz国产在线| 精品偷拍一区二区三区在线看| 久草在线视频福利| 91福利视频导航| 欧美 日韩 国产 一区| 亚洲视频第二页| 日本一区二区三区在线观看| 少妇高潮av久久久久久| 日韩国产在线看| 麻豆mv在线看| 国产有色视频色综合| 激情偷拍久久| 中文字幕乱视频| 精品久久久久久久大神国产| 污污的视频网站在线观看| 韩国v欧美v日本v亚洲| 动漫av一区| 免费在线观看亚洲视频| 91影院在线免费观看| 日韩欧美高清在线观看| 日韩精品免费电影| 亚洲伊人av| 日韩精品另类天天更新| 日韩av网站免费在线| 亚洲激情图片网| 欧美群妇大交群中文字幕| 亚洲视频tv| 91精品在线一区| 欧美va亚洲va日韩∨a综合色| 被黑人猛躁10次高潮视频| 亚洲一区在线观看免费 | 欧美日韩ab片| 亚洲日本一区二区三区在线| 成人在线播放网址| 91在线观看污| 中文字幕 欧美激情| 久久福利视频导航| 成人h动漫免费观看网站| 黄网站欧美内射| 久久久精品国产99久久精品芒果| 午夜一区二区三区四区| 久久精品中文字幕电影| 超碰97久久国产精品牛牛| 国产极品尤物在线| 欧美韩国一区二区| 国产强伦人妻毛片| 69av成年福利视频| 成人在线免费视频观看| 亚洲五月激情网| 五月婷婷久久丁香| 2021av在线| 国产成人av一区二区三区| 模特精品在线| 麻豆天美蜜桃91| 亚洲精品大尺度| 国产美女久久| 欧美视频在线观看视频| 久久久国产一区二区三区四区小说| 中文字幕在线播放日韩| 欧美黑人国产人伦爽爽爽| 一区二区小说| 深夜做爰性大片蜜桃| 狠狠躁夜夜躁人人爽天天天天97| 1区2区3区在线观看| 国产精品美女黄网| 蜜臀91精品一区二区三区 | 天天操天天干天天操天天干| 日韩欧美在线影院| 人人鲁人人莫人人爱精品| 日本三日本三级少妇三级66| 久久伊人蜜桃av一区二区| 国产精品羞羞答答在线| 亲子乱一区二区三区电影| 亚洲欧美在线专区| 国产成人福利在线| 欧美精品一区二区蜜臀亚洲| 四虎精品在线观看| 日本中文字幕片| 亚洲国产精品天堂|