MYSQL 如何对一个字段进行分类统计

本文介绍了一种使用SQL对数据库中的EmailSource字段按日期进行分类汇总的方法。通过具体实例展示了如何构建SQL查询来统计不同来源的数据,并按日期进行分组。

例如:如下图所示,对数据库的EmailSource字段按日期分类汇总

2011031009113169.png

因此我们可以写入如下的SQL语句类解决这样的问题

SELECT 
sum(case when `EmailSource`='FM' then 1 else 0 end) as FM_Statistic,
sum(case when `EmailSource`='UOC' then 1 else 0 end) as UOC_Statistic,
sum(case when `EmailSource`='OC' then 1 else 0 end) as OC_Statistic,
DATE_FORMAT(Date,'%Y-%m-%d') AS `DateTime` 
FROM `user_performance` 
WHERE Email != '' AND Email != 'TOTAL'
AND (DATE_FORMAT(Date,'%Y-%m-%d') >= DATE_FORMAT('2011-02-5','%Y-%m-%d')) 
AND (DATE_FORMAT(Date,'%Y-%m-%d') <= DATE_FORMAT('2011-03-07','%Y-%m-%d')) 
GROUP BY `Date`

搜索后结果为:

FM_StatisticUOC_StatisticOC_StatisticDateTime
1012011-02-07
2022011-02-08
260262011-02-09
260262011-02-10
280282011-02-11
310312011-02-14
310312011-02-15
300302011-02-16
290292011-02-17
280282011-02-18
310312011-02-21
320322011-02-22
300302011-02-23
320322011-02-24
3131312011-02-25
4442011-02-26
5552011-02-27
2929292011-02-28
3232322011-03-01
3030302011-03-02
### MySQL 中多列分组统计的实现方法 在 MySQL 数据库中,`GROUP BY` 子句用于将查询结果按照指定的一列或多列进行分组。当需要对多列进行分组并执行聚合操作时,可以简单地在 `GROUP BY` 后面列出这些列名即可[^1]。 #### 基本语法 以下是使用 `GROUP BY` 进行多列分组的基本 SQL 语法规则: ```sql SELECT 列1, 列2, ..., 聚合函数(目标列) FROM 表名 WHERE 条件表达式 (可选) GROUP BY 列1, 列2; ``` 在此结构中,`列1`, `列2` 是用来定义分组依据的字段名称;而 `聚合函数(目标列)` 可能是诸如 `COUNT()`, `SUM()`, 或者其他支持的操作符来计算每组的数据特性。 #### 实际案例分析 假设存在一张名为 `orders` 的订单表,其中包含以下几项重要信息:客户 ID (`customer_id`)、产品类别 (`product_category`) 和销售金额 (`sales_amount`)。如果希望了解每位顾客针对各类别的总销售额,则可以通过如下方式构建查询: ```sql SELECT customer_id, product_category, SUM(sales_amount) AS total_sales FROM orders GROUP BY customer_id, product_category; ``` 此查询会先基于客户的唯一标识以及他们购买的产品种类形成组合键来进行分类处理,接着利用求和功能得出相应数值[^3]。 另外一种情况涉及到了更复杂的逻辑——不仅要做基本的汇总还需要附加额外的信息比如记录条数等,在这种情形下我们可以扩展我们的 SELECT 部分加入更多的非聚集型字段或者再次引入计数器等功能单元作为辅助指标一同展示出来。例如下面的例子展示了如何获取每个名字对应的费用总额及其出现次数: ```sql SELECT name, SUM(fee) AS total_fee, COUNT(*) AS record_count FROM members GROUP BY name; ``` 这里我们除了常规的姓名外还增加了两个新的维度分别代表累积消费额度与个人资料重复度量标准[^2]。 综上所述,通过合理运用 GROUP BY 结合各种类型的聚合运算符能够灵活应对多种实际业务场景下的数据分析需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值