Excel是數(shù)據(jù)分析中最常用的工具,本篇文章通過mysql與excel的功能對比介紹如何使用mysql完成excel中的數(shù)據(jù)生成,數(shù)據(jù)清洗,預(yù)處理,以及最常見的數(shù)據(jù)分類,數(shù)據(jù)篩選,分類匯總,以及數(shù)據(jù)透視等操作。本篇文章我們介紹第5,6,7部分內(nèi)容,數(shù)據(jù)提取,數(shù)據(jù)篩選以及數(shù)據(jù)匯總及透視。
5,數(shù)據(jù)提取
第五部分是數(shù)據(jù)提取,也是數(shù)據(jù)分析中最常見的一個工作。下面介紹每一種函數(shù)的使用方法。
按列提取數(shù)據(jù)
#按列提取 SELECT city FROM data1;
![](/d/20211018/2f7475e76ac227f8dd47f033687fbf80.gif)
按行提取數(shù)據(jù)
#按行提取
SELECT * FROM data1 WHERE city='beijing';
![](/d/20211018/0d6c6ce224847894d9543619beba5df9.gif)
按位置提取數(shù)據(jù)
#按位置提取
SELECT * FROM data1 LIMIT 2,5;
![](/d/20211018/c0b2b2636a93519a878de10d27a53ef9.gif)
按條件提取數(shù)據(jù)
#按條件提取并計算
SELECT AVG(price) FROM data1 WHERE city='beijing' AND age25;
![](/d/20211018/40f009fe5a291d7cedfb379cada2497d.gif)
6,數(shù)據(jù)篩選
第六部分為數(shù)據(jù)篩選,使用與,或,非三個條件配合大于,小于和等于對數(shù)據(jù)進行篩選,并進行計數(shù)和求和。與excel中的篩選功能和countifs和sumifs功能相似。
按條件篩選(與,或,非)
Excel數(shù)據(jù)目錄下提供了“篩選”功能,用于對數(shù)據(jù)表按不同的條件進行篩選。mysql中使用WHERE完成篩選操作,配合sum和count函數(shù)還能實現(xiàn)excel中sumif和countif函數(shù)的功能。
![](/d/20211018/d192ca0a504c5f21a28b18a98e5130d0.gif)
#數(shù)據(jù)篩選AND
SELECT * FROM data1 WHERE city='shanghai' AND age>30;
![](/d/20211018/dbb9d74a627908454146bc9276c9185e.gif)
#數(shù)據(jù)篩選IN
SELECT * FROM data1 WHERE city IN ('shanghai','beijing');
![](/d/20211018/a5181f4b976acedb293849ce995d5186.gif)
#數(shù)據(jù)篩選OR
SELECT * FROM data1 WHERE city='shanghai' OR age>30;
![](/d/20211018/7b0be67d4dd0a3f0d301d498b7e41db4.gif)
#數(shù)據(jù)篩選(不等于)
SELECT * FROM data1 WHERE city !='beijing';
![](/d/20211018/f4cce7e5e8434692de5b192c7f498f45.gif)
#數(shù)據(jù)篩選like(模糊篩選)
SELECT * FROM data1 WHERE city LIKE 'bei%';
![](/d/20211018/d4f3cc8741775f8848a74f0131e3bfd8.gif)
#篩選后計數(shù) countif
SELECT COUNT(id) AS id_count FROM data1 WHERE city='shanghai'AND age>30;
![](/d/20211018/38502f14a4f0c5e683b661f1a5a88032.gif)
#篩選后求和 sumtif
SELECT SUM(price) AS price FROM data1 WHERE city='beijing' AND age30;
![](/d/20211018/5511330a3fb6306624d5e3feb1141577.gif)
#篩選后求均值 averageif
SELECT AVG(price) AS avg_price FROM data1 WHERE city !='beijing';
![](/d/20211018/7fe30e2b1f0ae72b237bbde7a1319812.gif)
7,數(shù)據(jù)分類匯總及透視
第七部分是對數(shù)據(jù)進行分類匯總,Excel中使用分類匯總和數(shù)據(jù)透視可以按特定維度對數(shù)據(jù)進行匯總,mysql中使用的主要函數(shù)是GROUP BY和CASE WHEN。下面分別介紹這兩個函數(shù)的使用方法。
分類匯總
Excel的數(shù)據(jù)目錄下提供了“分類匯總”功能,可以按指定的字段和匯總方式對數(shù)據(jù)表進行匯總。mysql中通過GROUP BY完成相應(yīng)的操作,并可以支持多級分類匯總。
![](/d/20211018/c76af5775baf2692d966a13321a62a2c.gif)
GROUP BY是進行分類匯總的函數(shù),使用方法很簡單,制定要分組的列名稱就可以,也可以同時制定多個列名稱,GROUP BY按列名稱出現(xiàn)的順序進行分組。同時要制定分組后的匯總方式,常見的是計數(shù)和求和兩種。
#單列分類匯總
SELECT city,COUNT(id) AS id_count FROM data1 GROUP BY city ORDER BY id_count;
![](/d/20211018/34f606b6ca22424f0b4d4f108536927a.gif)
#多列分類匯總
SELECT city,colour,ROUND(SUM(price),2) AS id_count FROM data1 GROUP BY city,colour;
![](/d/20211018/2d7f3c1d88d76b598b75c10c53173390.gif)
數(shù)據(jù)透視
Excel中的插入目錄下提供“數(shù)據(jù)透視表”功能對數(shù)據(jù)表按特定維度進行匯總。mysql中沒有直接提供數(shù)據(jù)透視表功能。但通過CASE WHEN函數(shù)實現(xiàn)同樣的效果。
![](/d/20211018/d0ecbfc213ecd6c8b0bc14773b6d273b.gif)
數(shù)據(jù)透視表也是常用的一種數(shù)據(jù)分類匯總方式,并且功能上比GROUP BY要強大一些。下面的代碼中設(shè)定city為行字段,colour為列字段,price為值字段,計算price金額。
#查看原始數(shù)據(jù)表
SELECT * FROM data1;
![](/d/20211018/1abdc0738bc1e30d62d0b95a16ce380e.gif)
#使用CASE WHEN進行數(shù)據(jù)透視
CREATE VIEW data_Items AS (
SELECT
data1.city,
CASE WHEN colour = "A" THEN price END AS A,
CASE WHEN colour = "B" THEN price END AS B,
CASE WHEN colour = "C" THEN price END AS C,
CASE WHEN colour = "F" THEN price END AS F
FROM data1
);
#查看結(jié)果
SELECT * FROM data_Items;
![](/d/20211018/8a001e0c34d45fcdca48a9c305c3152e.gif)
#對字段進行求和匯總
CREATE VIEW data1_Extended_Pivot AS (
SELECT
city,
SUM(A) AS A,
SUM(B) AS B,
SUM(C) AS C,
SUM(F) AS F
FROM data_Items
GROUP BY city
);
#查看結(jié)果
SELECT * FROM data1_Extended_Pivot;
![](/d/20211018/75954b5b3eb24c90626dc57afbfd00ad.gif)
#對空值進行處理
CREATE VIEW data1_Extended_Pivot_Pretty AS (
SELECT
city,
COALESCE(A, 0) AS A,
COALESCE(B, 0) AS B,
COALESCE(C, 0) AS C,
COALESCE(F, 0) AS F
FROM data1_Extended_Pivot
);
#查看數(shù)據(jù)透視結(jié)果
SELECT * FROM data1_Extended_Pivot_Pretty;
![](/d/20211018/b3eee8d490a5f930e7f12d0538735590.gif)
您可能感興趣的文章:- PHP導入Excel到MySQL的方法
- Excel數(shù)據(jù)導入Mysql數(shù)據(jù)庫的實現(xiàn)代碼
- 使用phpexcel類實現(xiàn)excel導入mysql數(shù)據(jù)庫功能(實例代碼)
- PHP導出MySQL數(shù)據(jù)到Excel文件(fputcsv)
- php 將excel導入mysql
- Mysql中文亂碼以及導出為sql語句和Excel問題解決方法[圖文]