第1章 高效處理千萬資料
阿新 • • 發佈:2019-01-08
- 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工具的匯入、資料處理,以及資料分析實現的方式。