最近在工作中需要查詢一些資料進行資料分析,又不好每次都麻煩開發小哥哥,于是隻能動手自己查詢。今天就來聊聊如何取數。(其實嚴格意義上來說,SQL不能算是一門程式設計語言,隻能算是一個取數工具。)
學習SQL的好處
1、不用每次都麻煩開發
找開發小哥哥給你查詢資料,你可能得等半天,而自己查詢的話,一兩分鐘的事情。即裝逼,又高效。
2、為轉型資料産品經理打下基礎
很多小夥伴都說自己想做資料産品經理,想做人工智能産品經理。不論是人工智能還是大資料産品經理都是需要和資料打交道的,想做人工智能首先就要學習機器學習,機器本身就需要大量的資料進行喂養才能達到學習的效果。而大部分的資料來源都是公司的資料倉庫,SQL語言可以幫你了解機器學習的名額體系建構和特征提取。
3、高效處理資料
産品經理日常和資料打交道的場景很多。大部分同學可能都是通過EXCEl進行資料的可視化,比如做資料透視表這些。但是如何從多張表執行繁雜的“連接配接”操作和“分組”後“選擇”需要的字段,這些EXCEl實作不了,但是對于SQL來說就是一句話的事情。
SQL執行個體講解
1、資料庫單表查詢
1.1 基本的查詢文法
select 列名 ---查詢指定要顯示的字段;如果要檢視所有的列,則用*号表示
From 表A ---選擇要查詢的表
where 限制條件 ---各種過濾條件,例如:大于,小于等
Group by ---按指定列名進行分組統計。比如今天新增了多少名會員,今天形成了多少筆訂單
Having 列名 ---對分組統計的結果進行限制。主要用來做顧慮。比如我統計每天的訂單總數是多少,統計出來以後,我想知道訂單總數大于100 的是多少,主要對Group by統計之後的資料進行過濾
Order by 列名 ---對查詢結果進行排序(ASC升序,Desc降序),預設是升序
Limit N ---給出N條資料
1.2 執行個體講解
比如訂單 by_order表結構:
例子1:查詢表前10行資料
例子2:找出訂單金額大于200的顧客
如果會員重複怎麼辦呢?比如同個會員買了兩次,每次金額都大于200,但我隻想知道買過的金額大于200的會員有哪些,這個時候該怎麼辦呢?
答案是可以用distinct去重。
例子3:找出訂單金額大于20小于200的顧客
例子4:按照訂單金額進行排序
如果你想降序排列
1.3 彙總:group by
實際工作中的你也不會隻看訂單明細,而需要看看每一天的訂單總額、每個顧客的每天購買金額這類資料,那這種統計類的資料就需用到Group by了。
Group by 一定是跟着彙總函數一起使用
基本的彙總函數有以下幾項:
max() 統計最大
min() 統計最小
count() 計數,如果需要去計算列去重,則count(distinct)
avg() 計算平均數
sum() 彙總
例子1:統計顧客的累計購買金額
例子2:統計各個顧客的每天購買金額
備注:as sum_money 和as as day_1 都是取别名用的。
如果不寫as sum_money,則顯示的是左邊的清單,如果加入as sum_money 則最終結果顯示的下圖右邊的表格
遇到不懂的技術問題怎麼辦?
1、詢問技術
抽屜裡常備一些零食,沒事給同僚發一發,平時多幫幫别人,下次向人請教,别人也願意幫助你。
2、百度
能百度找到答案的問題都不是問題。不要懶,也不要輕易麻煩别人。在工作中也一樣,自己能解決的問題不要找上司,除非拼盡全力也解決不了。
3、多實踐
掌握的技術知識還得在實踐中多練習。就像高中實體老師給我們上完課以後,我們需要通過大量的習題來鞏固知識一樣。學習到的這些知識還是得在實踐中多多練習。
下一次我們将分享多表查詢,喜歡的小夥伴可關注微信公衆号:
chanpinliu880有疑問的小夥伴也可以加微信:
chanpin628進行交流。