【SQL語言】數據分析師的佩劍

劍者,百兵之君也,橫豎可傷人。佩劍者,江湖人士必備之物也,其非倚天劍等稀罕之物,也非屠龍刀攜之可號令天下,但作為一名俠客,佩劍卻是缺之不可。今天要講的SQL語言,它在數據分析師的必備技能中,就如同佩劍這樣的地位,人人有之,缺之不可。

1、為什麼要學SQL

作為一名數據分析師,每天最基本的工作不是分析數據,而是提取數據。比如在互聯網公司最常見的場景,是產品經理對著數據分析師喊,「這周發版本了,快點幫我提取一下這個新功能的點擊率留存率」,「昨天有一場運營活動,幫我看一下這個banner圖的點擊率下載轉化率」,「要發月報了,快幫我導一下這個月的活躍用戶數下載人數、付費轉化率」。這時數據分析師就坐在電腦前啪啪啪地敲鍵盤,一會產品經理要的數據就導到Excel表格里了。他敲的東西,就是SQL語言

寫SQL提取數據的工作,佔了數據分析師至少40%的時間,所以你說SQL重不重要?那為什麼是SQL,不是其他的語言,這個就需要談到資料庫語言的發展歷史了。

2、SQL的發展

SQL起源於IBM,在1970年初,San Jose,加利福尼亞實驗室的埃德加-科德發表了將數據組成表格的應用原則,4年後同一實驗室的D.D.Chamberlin和R.F.Boyce研製出一套規範語言SEQUEL(結構化英文查詢語言)。後來在1980年,SEQUEL正式改名為SQL。

IBM San Jose,California 實驗室

1979年,ORACLE公司採用了SQL,IBM公司在DB2資料庫系統中也採用了SQL。

1988年微軟的SQL Server資料庫系統採用了SQL。

1989年,SQL被國際標準化組織(ISO)採納為國際標準。

自此,SQL作為資料庫操作語言被廣泛應用於各個平台。不管是在銀行業大行其道的ORACLE資料庫,還是小型公司使用的MySQL開源資料庫,抑或是大型互聯網公司流行的Hbase(Hadoop的子項目,非結構化的資料庫),SQL都是不可或缺的操作語言。

3、SQL的學習曲線

作為數據分析師,如果你以後的發展方向不是數據工程師的話,SQL只需要掌握基礎部分就可以了,具體包括

檢索數據(Select語句)

排序數據(Order by語句)

過濾數據(Where語句)

匯總數據(Group by語句)

聯結數據(Join語句)

創建、插入、刪除數據(Create、Insert、Delete語句)

掌握以上的知識點就可以了,對於一個沒有任何基礎的人,也可以在一周之內學會。這裡推薦一本書《MySQL必知必會》,是我看過最簡單易懂的SQL書籍。

只有薄薄的200頁。

4、一道SQL面試題

我經歷過很多次數據分析師面試,經常會遇到這樣一道經典的SQL筆試題。

A(用戶購買記錄)、B(商品對應ID)、C(ID對應價格)三個表,問本月內購買商品金額最多的前三名用戶分別是誰?

這道題雖然簡單,但考到了SQL的幾個基礎知識,包括Select、Group by、Order by、Join、Limit

A表只有用戶和商品名字的對應關係,需要關聯到C表求得價格,但A表和C表沒有公共欄位,這時發現A表和B表有公共欄位商品名字,而B表和C表有公共欄位商品ID,於是先用A表Join B表,再Join C表得出一張多個欄位的關聯表,用Group by求出用戶購買商品的總金額,再用Order by對用戶購買商品的總金額進行降序排列,最後用Limit截取總金額前三位的用戶。

在數據分析這個江湖,佩劍無處不在,但有一些俠客通過重重阻難贏得了鋒利無比的倚天劍,也有一些俠客獨闢蹊徑覓得了大巧不工的玄鐵劍。下回咱就來講講其他刀劍的江湖故事。

我的微信公眾號(washu66),定期發布原創文章,歡迎關注 p( ^ O ^ )q


推薦閱讀:

絕對收藏!民生銀行用戶畫像建設分享30頁PPT放送
什麼是數據挖掘?
你壓力最大的時候是什麼時候,怎麼度過的?
知乎中的「近義詞」(三):讓搜索更智能
談談你對大規模機器學習這個領域的理解和認識?

TAG:数据分析 | 数据挖掘 | 大数据 |