第1章 高效處理千萬數據
阿新 • • 發佈:2019-01-08
研究 連接數 ldr if函數 有用 返回 金額 生成 內連接
- 1.1 最容易上手的數據庫
- 1.1.1 數據庫那些事兒
數據分析主要有三大作用:現狀分析-告訴我們過去發生了什麽;原因分析-告訴我們為什麽會發生;預測分析-告訴我們將來會發生什麽。- Access數據庫
- 優勢與不足:
- (1)操作界面友好,易於操作
- (2)Access查詢處理可直接生成相應的SQL語句
- 1.1.2 萬能的SQL
- 基本語法
SELECT 姓名,性別,年齡,身高,婚姻狀況,教育背景,月收入,是否有房,是否有車,備註
FROM 會員表
WHERE 性別=‘男‘
AND 年齡 BETWEEN(26,30)
AND 身高 BETWEEN(170,180)
AND 婚姻狀況 = ‘未婚‘
AND 教育背景 IN(‘本科‘,‘研究生‘?)
AND 月收入 >= 8000
AND 是否有房=‘是‘
AND 是否有車=‘是‘
AND 備註 IN (‘細心‘,‘大方‘,‘浪漫‘)
ORDER BY 月收入 DESC;???????????
- 基本語法
- 1.1.3 兩招導入數據
- 直接導入法
- 建立鏈接法
- 1.1.4 數據合並
- 橫向合並
- 內連接
- 左連接
- 右連接
- 縱向合並
- (1)菜單操作法
- (2)UNION ALL-使用SQL語句
- 橫向合並
- 1.1.5 快速實現數據計算
- 簡單計算
- 簡單計算就是加減乘除等簡單算術計算
- 函數計算
- DATEDIFF函數:通過日期函數計算得到用戶註冊的天數
- Year()
- Month()
- Abs()
- Int()
- Round()
- Len()
- 簡單計算
- 1.1.6 數據分組
- 數值分組
- (1)IIF函數法
SELECT 用戶ID,年齡,
IIF(年齡<=20,"20歲及其以下",
IIF(年齡<=30,"30歲及其以下",
IIF(年齡<=40,"31-40歲",
"40歲以上"))) AS 年齡分組
FROM 用戶明細; - (2)CHOOSE函數法
SELECT 用戶ID,年齡,
CHOOSE((年齡-1)/10+1,"10歲及其以下","11-20歲","21-30歲","31-40歲","40歲以上") AS
年齡分組
FROM 用戶明細; - (3)SWITCH函數法
SELECT 用戶ID,年齡
SWITCH(年齡<=20,"20歲及其以下",
年齡<=30,"21-30歲",
年齡<=40,"31-40歲",
年齡>40,"40歲以上") AS 年齡分組
FROM 用戶明細; - (4)PARTITION函數法
SELECT 用戶ID,年齡,
PARTITION(年齡,1,100,20) AS 年齡分組
FROM 用戶明細;?
- (1)IIF函數法
- 日期時間分組
FORMAT (日期/時間, 日期/時間格式參數)
- 數值分組
- 1.1.7 重復數據處理
- 重復項查詢
(1)菜單操作法
Access數據庫-查詢-查詢向導-查找重復項查詢向導
?
(2)SQL查詢法
???SELECT First(訂購明細.[用戶ID]) AS [用戶ID 字段], Count(訂購明細.[用戶ID]) AS NumberOfDups
FROM 訂購明細
GROUP BY 訂購明細.[用戶ID]
HAVING (((Count(訂購明細.[用戶ID]))>1)); - 不重復項查詢
(1)Having Count(用戶ID)=1
?SELECT First(訂購明細.[用戶ID]) AS [用戶ID 字段], Count(訂購明細.[用戶ID]) AS NumberOfDups
FROM 訂購明細
GROUP BY 訂購明細.[用戶ID]
HAVING (((Count(訂購明細.[用戶ID]))=1));? - 數據去重查詢
(1)GROUP BY子句
SELECT 用戶ID
FROM 訂購明細
GROUP BY用戶ID;
????
(2)DISTINCT?
SELECT DISTINCT 用戶ID
FROM 訂購明細;?
- 重復項查詢
- 1.1.8 數據分析一步到位
- 簡單統計
- 重復數據處理時東東啊一個計數函數Count
SELECT
Count(訂單編號) AS 訂單總數,
Sum(訂購金額) AS 訂購金額總和,
Avg(訂購金額) AS 平均訂單金額
FROM 訂購明細;
?
- 重復數據處理時東東啊一個計數函數Count
- 分組統計
(1)SELECT 產品,
Count(訂單編號) AS 訂單總數,
Sum(訂購金額) AS 訂購金額總和,
Avg(訂購金額) AS 平均訂單金額
FROM 訂購明細
GROUP BY 產品;
(2)用戶訂購時段分布信息
SELECT FORMAT(訂購日期,"h")AS 時段,
Count(訂單編號) AS 訂單數
FROM 訂購明細
GROUP BY FORMAT(訂購日期,"h");
????(3)分組去重關聯嵌套查詢
我們需要了解不同年齡段的用戶訂購分布情況,原有“訂購明細”表中沒有用戶年齡信息,並且訂購用戶存在重復情況,需要去重。
SELECT 年齡分組,Count(用戶ID) AS 用戶數
FROM
(SELECT DISTINCT A.用戶ID, PARTITION(B.年齡,1,100,5) AS 年齡分組
FROM 訂購明細 A, 用戶明細 B
WHERE A.用戶ID = B.用戶ID)
GROUP BY 年齡分組;
(4)了解各省的訂單數分布:
SELECT B.省份, Count(A.訂單編號) AS 訂單數
FROM 訂購明細 A,用戶明細 B
WHERE A.用戶ID = B.用戶ID
GROUP BY B.省份;?? - 交叉表統計
統計不同省份、性別的用戶分布情況- (1)ACCESS:創建-查詢向導-交叉表查詢向導-選擇行標題-選擇列標題-選擇交叉點統計項-選擇Count函數
- (2)SQL交叉表查詢
SQL交叉表語句:
TRANSFORM Count(用戶明細.[用戶ID]) AS 用戶ID之計數
SELECT 用戶明細.[省份], Count(用戶明細.[用戶ID]) AS [總計 用戶ID]
FROM 用戶明細
GROUP BY 用戶明細.[省份]
PIVOT 用戶明細.[性別];
--只要在分組統計SQL語句基礎上,前後增加TRANSFORM與PIVOT語句,並且在TRANSFORM後面增加每個行和列的交叉點統計函數及字段,在PIVOT後面增加要作為列標題的分組字段即可。
- 簡單統計
- 1.1.1 數據庫那些事兒
- 1.2 Microsoft Query
使用Microsoft Query工具進行數據處理與分析,需要以下四步:
1.建立數據源以連接數據
2.使用“查詢向導"選擇所需要的數據
3.在查詢操作界面進行相應的SQL查詢操作
4.將數據結果返回到EXCEL中???- 1.2.1數據導入
- 建立數據源連接數據
- 使用“查詢向導”選擇數據
- 1.2.2數據處理
數據合並、數據計算、數據分組、數據去重等其他的SQL語句數據處理方式,均與Access數據庫中的基本一致。 - 1.2.3數據分析
- SQL語句分析法
- 數據透視表法
把處理好的數據作為數據透視表的數據源。數據透視表結果可以更加靈活、方便地以交叉表方式顯示。
果然如此,這一招真實用。?
- 1.2.1數據導入
- 1.3本章小結
- 了解數據庫的作用,並熟悉Access數據庫,了解其優勢與不足。
- 了解SQL語句在數據處理與分析中的作用,並學習了其基本語法。
- 學習Access數據庫中數據導入、數據合並、數據計算、數據分組、數據重復處理,以及數據分析的菜單操作與SQL語句實現方式。
- 了解Microsoft Query工具的作用,及其與Access數據庫相似及不同之處。
- 學習Microsoft Query工具的導入、數據處理,以及數據分析實現的方式。
第1章 高效處理千萬數據