【发布时间】:2015-02-26 03:35:57
【问题描述】:
我有一个 sales 表,其中包含以下列:
| Customer_Id | amount | date |
按customer_id 对数据进行分组并在不同的月份列上显示每个 Customer_id(每个 Customer_id 一行)的每月总金额 (SUM) 的最佳方法是什么?
所需的输出类似于:
Customer |January | February | March | ....
Customer_id |SUM amount | SUM amount | SUM amount | ....
我相信在 Sql 中这称为数据透视表。
¡谢谢!
【问题讨论】:
-
你有什么尝试吗?
-
这通常通过分组来完成,就像在大多数答案中一样,然后是使用
case表达式的列。sum(case when month(date) = 1 then amount else null end) as January, ... -
一般来说,出于可扩展性和灵活性的原因,如果有这样的东西可用,最好在应用程序级代码(例如 PHP)中处理数据显示问题。
-
@shawnt00 我如何使用 sum(case when mont... 并且结果每个 customer_id 只显示一行?
-
您可能没有添加
GROUP BY Customer_id,根据定义,每个 customer_id 都会为您提供一行。
标签: mysql database pivot-table