本文摘自PHP中文网,作者小云云,侵删。
Excel是数据分析中最常用的工具,本篇文章通过mysql与excel的功能对比介绍如何使用mysql完成excel中的数据生成,数据清洗,预处理,以及最常见的数据分类,数据筛选,分类汇总,以及数据透视等操作。本篇文章我们介绍第5,6,7部分内容,数据提取,数据筛选以及数据汇总及透视。本文主要介绍了如何使用mysql完成excel中的数据生成的相关资料,需要的朋友可以参考下。
5,数据提取
第五部分是数据提取,也是数据分析中最常见的一个工作。下面介绍每一种函数的使用方法。
按列提取数据
#按列提取 SELECT city FROM data1;

按行提取数据
1 2 | #按行提取
SELECT * FROM data1 WHERE city= 'beijing' ;
|

按位置提取数据
1 2 | #按位置提取
SELECT * FROM data1 LIMIT 2,5;
|

按条件提取数据
1 2 | #按条件提取并计算
SELECT AVG (price) FROM data1 WHERE city= 'beijing' AND age<25;
|

6,数据筛选
第六部分为数据筛选,使用与,或,非三个条件配合大于,小于和等于对数据进行筛选,并进行计数和求和。与excel中的筛选功能和countifs和sumifs功能相似。
按条件筛选(与,或,非)
Excel数据目录下提供了“筛选”功能,用于对数据表按不同的条件进行筛选。mysql中使用WHERE完成筛选操作,配合sum和count函数还能实现excel中sumif和countif函数的功能。

1 2 | #数据筛选 AND
SELECT * FROM data1 WHERE city= 'shanghai' AND age>30;
|

1 2 | #数据筛选 IN
SELECT * FROM data1 WHERE city IN ( 'shanghai' , 'beijing' );
|

1 2 | #数据筛选 OR
SELECT * FROM data1 WHERE city= 'shanghai' OR age>30;
|

1 2 | #数据筛选(不等于)
SELECT * FROM data1 WHERE city != 'beijing' ;
|

1 2 | #数据筛选 like (模糊筛选)
SELECT * FROM data1 WHERE city LIKE 'bei%' ;
|

1 2 | #筛选后计数 countif
SELECT COUNT (id) AS id_count FROM data1 WHERE city= 'shanghai' AND age>30;
|

1 2 | #筛选后求和 sumtif
SELECT SUM (price) AS price FROM data1 WHERE city= 'beijing' AND age<30;
|

1 2 | #筛选后求均值 averageif
SELECT AVG (price) AS avg_price FROM data1 WHERE city != 'beijing' ;
|

7,数据分类汇总及透视
第七部分是对数据进行分类汇总,Excel中使用分类汇总和数据透视可以按特定维度对数据进行汇总,mysql中使用的主要函数是GROUP BY和CASE WHEN。下面分别介绍这两个函数的使用方法。
分类汇总
Excel的数据目录下提供了“分类汇总”功能,可以按指定的字段和汇总方式对数据表进行汇总。mysql中通过GROUP BY完成相应的操作,并可以支持多级分类汇总。

GROUP BY是进行分类汇总的函数,使用方法很简单,制定要分组的列名称就可以,也可以同时制定多个列名称,GROUP BY按列名称出现的顺序进行分组。同时要制定分组后的汇总方式,常见的是计数和求和两种。
1 2 | #单列分类汇总
SELECT city, COUNT (id) AS id_count FROM data1 GROUP BY city ORDER BY id_count;
|

1 2 | #多列分类汇总
SELECT city,colour,ROUND( SUM (price),2) AS id_count FROM data1 GROUP BY city,colour;
|

数据透视
Excel中的插入目录下提供“数据透视表”功能对数据表按特定维度进行汇总。mysql中没有直接提供数据透视表功能。但通过CASE WHEN函数实现同样的效果。

数据透视表也是常用的一种数据分类汇总方式,并且功能上比GROUP BY要强大一些。下面的代码中设定city为行字段,colour为列字段,price为值字段,计算price金额。
1 2 | #查看原始数据表
SELECT * FROM data1;
|

1 2 3 4 5 6 7 8 9 10 | #使用 CASE WHEN 进行数据透视
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
);
|
1 2 | #查看结果
SELECT * FROM data_Items;
|

1 2 3 4 5 6 7 8 9 10 11 | #对字段进行求和汇总
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
);
|
1 2 | #查看结果
SELECT * FROM data1_Extended_Pivot;
|

1 2 3 4 5 6 7 8 9 10 | #对空值进行处理
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
);
|
1 2 | #查看数据透视结果
SELECT * FROM data1_Extended_Pivot_Pretty;
|

大家在开发过程中可能会经常遇到,现在就跟着本文尝试操作一下吧。
相关推荐:
PHP导出EXCEL快速开发指南
Python操作excel文件的案例
php使用原生的方法导出excel实例分享
以上就是如何使用mysql完成excel中的数据生成的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
mysql 判断字段是否包含某个字符串的方法
查看表结构的sql语句是什么
mysql慢查询日志的配置以及使用教程详解
mysql如何按时间查询优化
mysql 存储过程的优缺点分析
linux下mysql怎么设置表名?
mysql如何实现最大连接数
详细讲解mysql全局变量与局部变量
mysql解压包的安装与下载的图文教程
mysql字符串函数详解(推荐)
更多相关阅读请进入《Excel》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 如何使用mysql完成excel中的数据生成