
mysql数据查询基础:按日期分组求和
问题:如何利用sql语句从给定表格中查询每个产品的日销售量?
表格结构如下:
| 日期 | 产品 | 销量 |
|---|---|---|
| 2021-1-1 | a | 3 |
| 2021-1-1 | b | 7 |
| 2021-1-1 | a | 2 |
| 2021-1-2 | b | 1 |
| 2021-1-2 | a | 3 |
| 2021-1-2 | b | 6 |
sql语句示例:
系统功能强大、操作便捷并具有高度延续开发的内容与知识管理系统,并可集合系统强大的新闻、产品、下载、人才、留言、搜索引擎优化、等功能模块,为企业部门提供一个简单、易用、开放、可扩展的企业信息门户平台或电子商务运行平台。开发人员为脆弱页面专门设计了防刷新系统,自动阻止恶意访问和攻击;安全检查应用于每一处代码中,每个提交到系统查询语句中的变量都经过过滤,可自动屏蔽恶意攻击代码,从而全面防止SQL注入攻击
SELECT 产品 AS 产品销量, SUM(CASE 日期 WHEN '2021-1-1' THEN 销量 ELSE 0 END) AS '2021-1-1', SUM(CASE 日期 WHEN '2021-1-2' THEN 销量 ELSE 0 END) AS '2021-1-2' FROM mytable GROUP BY 产品;
结果:
| 产品销量 | 2021-1-1 | 2021-1-2 |
|---|---|---|
| a | 5 | 3 |
| b | 7 | 7 |
解析:
- sum(case 日期 when '2021-1-1' then 销量 else 0 end):计算每个产品的2021-1-1的销售量,如果日期不等于2021-1-1,则返回0。
- sum(case 日期 when '2021-1-2' then 销量 else 0 end):计算每个产品的2021-1-2的销售量,如果日期不等于2021-1-2,则返回0。
- group by 产品:按产品分组,并将每个产品的日销售量求和。









