请求编写按日期与产品名称汇总Volume的SQL查询语句
SQL查询:按日期和产品分组统计Volume总和
没问题,这是个很常见的分组统计需求,我帮你整理了解决方案:
原始数据表
首先先明确你的源数据结构:
| Day | Product | Volume |
|---|---|---|
| 2019-01-01 | A | 100 |
| 2019-01-01 | B | 200 |
| 2019-01-01 | B | 100 |
| 2019-01-02 | B | 150 |
| 2019-01-02 | C | 170 |
| 2019-01-02 | B | 190 |
| 2019-01-03 | A | 150 |
| 2019-01-03 | A | 140 |
| 2019-01-04 | B | 130 |
| 2019-01-04 | A | 130 |
| 2019-01-04 | C | 170 |
实现SQL语句
你需要同时按Day和Product进行分组,然后对每组的Volume求和,具体SQL如下:
SELECT Day, Product, SUM(Volume) AS Volume FROM your_table_name -- 替换成你实际使用的表名 GROUP BY Day, Product ORDER BY Day, Product;
语句说明
SUM(Volume):对每个分组内的Volume字段进行求和计算,得到每日单个产品的总销量GROUP BY Day, Product:这是核心逻辑,只有同时按日期和产品分组,才能精准统计每日每个产品的累计值,避免把同一日期下的不同产品数据混在一起统计ORDER BY Day, Product:让查询结果按日期升序、产品名称排序,和你给出的预期结果顺序保持一致
补充说明
这里提个小细节:原始数据中2019-01-01的B产品Volume总和应该是200+100=300,你给出的预期里写的450可能是笔误;2019-01-02的B产品总和是150+190=340,也和你预期里的190有出入。不过上面的SQL逻辑是完全正确的,执行后会得到符合数据实际情况的统计结果。
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

