
淺談數(shù)據(jù)分析師的必備技能SQL
很久沒寫東西了,正好群里有童鞋最近要換工作,提到有關(guān)數(shù)據(jù)庫方面的問題,個人認為,做數(shù)據(jù)分析的并沒有必要把數(shù)據(jù)庫開發(fā)之類的弄懂,你只需要從相應的數(shù)據(jù)庫中調(diào)用你需要的數(shù)據(jù)即可,至于數(shù)據(jù)庫設(shè)計相關(guān)的安全事務,開發(fā)之類的問題那是數(shù)據(jù)庫工程師的事情,而作數(shù)據(jù)分析師的你了解SQL語言即可。當然,誰都不會嫌自己的知識多,掌握的東西越多對自己的發(fā)展當然也就越有利。
了解SQL的必要性
俗話說“巧婦難為無米之炊”,沒有數(shù)據(jù)怎么分析。而SQL對于你來說就好比電腦的鍵盤鼠標,雖說沒有了它也能照常運行,但對使用它的人來說靈活性卻下降了許多。而這一點也正是許多數(shù)據(jù)分析從業(yè)者所缺少的(包括我),記得白鴉曾在他的博客中發(fā)表過數(shù)據(jù)分析師很少的言論。不管數(shù)據(jù)分析師在什么樣的團隊,其所起的作用都是統(tǒng)計和調(diào)查,數(shù)據(jù)挖掘、可行性及策略分析等類似的功能。真正的數(shù)據(jù)分析師,或者能達到企業(yè)期望要求的數(shù)據(jù)分析師為什么鳳毛麟角。為什么滿足企業(yè)要求的數(shù)據(jù)分析師鳳毛麟角,其中一個主要的原因就是學統(tǒng)計的人不會數(shù)據(jù)庫,而學計算機的同學不會建模分析。
SQL使得數(shù)據(jù)的采集過程變得更加方便快捷,此處的方便快捷可以從2方面得以體現(xiàn),1.在分析數(shù)據(jù)時候不必再苦苦請求其他同事,自己需要什么數(shù)據(jù)自己直接去導,而不再是從別人手中接過譬如.xls或.csv之類的數(shù)據(jù)文檔;2.便捷快速的清洗出自己所需要的原始數(shù)據(jù),譬如你需要的是每個月銷售額排名前20的產(chǎn)品相關(guān)數(shù)據(jù),這時你就可以直接從數(shù)據(jù)庫導出數(shù)據(jù)時來完成數(shù)據(jù)篩選的過程,而不是傻傻的導出所有產(chǎn)品銷售數(shù)據(jù)再進行二次處理。關(guān)于如何利用SPSS從數(shù)據(jù)庫中挑選自己所需要的數(shù)據(jù)參見Syntax代碼旅途。此外,在EXCEL的多表操作中也涉及相關(guān)SQL語句,如數(shù)據(jù)透視表的應用等。
SQL查詢相關(guān)小技巧
·使用AND時,將不為真的條件放在前面
數(shù)據(jù)庫系統(tǒng)遵循運算符的優(yōu)先級,并且運算過程是從左至右的,將條件不為真的放在前面,則能夠省去and后面的相關(guān)運算,以達到減少數(shù)據(jù)庫系統(tǒng)運算工作量的目的,提高工作效率。
·使用OR運算符時,則將最可能為真的條件放在前面
和上面and的原理類似,and運算符要求兩邊條件都為真,整個條件才為真,而or只需要一邊為真,將條件為真的放在前面可使or運算符不需要檢查右邊的條件,從而節(jié)約時間,提高工作效率。
·distinct比group by更快
distinct和group by通常起限制結(jié)果為唯一的記錄行的作用,處理此類問題時distinct往往比group by更加迅速。
·限制聯(lián)合的結(jié)果
從數(shù)據(jù)庫中提取的信息量越少,速度也就越快,而加適當?shù)南拗茥l件除了滿足自身的需求之外,另外一個原因就是為了加快處理查詢速度。e.g:
select var1, var2 from table1 inner join table2 on table1.id=table2.id where condition;
·對子查詢使用in運算符
在子查詢過程中,運用select語句往往會使數(shù)據(jù)庫系統(tǒng)考慮更多的東西,從而降低工作效率,相比較而言,運用in運算符則可以有效的解決這個問題。e.g:下面的子查詢中第1句將比第2句更加有效
select var1, var2 from table1 where var1 in (select var1 from table2 where condition);
select var1, var2 from table1 where var1=(select var1 from table2 where condition) ;
·盡量避免使用select * from
指定確定的列可以讓你清楚的了解你所需要采集的變量,利用select * from不只是效率低下,更不利于你的后續(xù)分析,所以對于select * from則是能避免則盡量避免。數(shù)據(jù)分析師培訓
·對整數(shù)類型列進行搜索
這類問題主要針對字符變量的查詢而言,對應的字符變量如果有相應的編碼對應,直接將編碼設(shè)置為查詢條件將比直接查詢字符變量來得更加迅速。
數(shù)據(jù)采集中常用的SQL語句
相同的SQL語句運用到不同數(shù)據(jù)庫中會有略微的差別,對字符變量的要求,相關(guān)函數(shù)的變化,以及語法規(guī)則的不同等等,例如:oracle數(shù)據(jù)庫中對字段命名別名時不需要as 字符,沒有month(),year()等時間函數(shù)等等,access數(shù)據(jù)庫中在使用inner join執(zhí)行內(nèi)部聯(lián)合時條件需用(),當然還有很多的細微差別,大家可以自己去尋找總結(jié)。下面的示例以SQL SERVER為基礎(chǔ)編寫。
1. 抽取非重復數(shù)據(jù)
select distinct var1 from tableName;
2. 抽取某個時間段間的數(shù)據(jù)
select var1,var2 from 數(shù)據(jù)表 where 字段名 between 時間1 and 時間2;
3. 連接多個變量
select ‘123’+cast(456 as varchar);
select ‘123’+cast(456 as varchar)+’789′;
4. 用SQL語句找出表名為Table1中的處在ID字段中1-200條記錄中Name字段包含w的所有記錄
select * from Table1 where id between 1 and 200 and Name like ‘%w%’;
5. 找出擁有超過10名客戶的地區(qū)的列表
select country from test group by country having count(customerId)>10;
6. 關(guān)于取出每個部門工資最高的前三人
select * from table t where 工資 in (select top 3 工資 from table where 部門 = t.部門 order by 工資 desc);
7. 兩個結(jié)構(gòu)完全相同的表a和b,主鍵為index,使用SQL語句,把a表中存在但在b表中不存在的數(shù)據(jù)插入的b表中
insert into b select * from a where not exists(select * from b where “index”=a.”index”);
8.從一個數(shù)據(jù)庫中的多個數(shù)據(jù)表提取相關(guān)變量
Select table1.var1,table2.var2,table2.var3,
From table1 inner join table2
On tabel1.var1=table2.var1
Inner join table3
On tabel1.var2=table3.var2
(order by ……)
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03