0

我有一个类似于以下模式的表

id | year | month | amount ...
x  | 2011 | 12    | 312
x  | 2011 | 12    | 213
x  | 2012 | 1     | 123
x  | 2012 | 1     | 123
x  | 2012 | 2     | 123
...

我想知道是否有可能(通过mysql)输出类似

year | 1   | 2   | 3 | ....
2011 | 321 | 231 | ...
2012 | 246 | 123 | ...

所以做一个group by year, month,sum(amount)并每年输出一个“行”,将各个月份作为列。

谢谢

4

1 回答 1

2

您会想要使用各种数据透视表。如果您只处理几个月,那么下面的 SQL 应该适合您。我只做了前三个月,但其余的都是一样的。

SELECT year, SUM(IF(month=1,amount,0)) As '1', SUM(IF(month=2,amount,0)) As '2', SUM(IF(month=3,amount,0)) As '3' FROM mytable GROUP BY year
于 2012-09-12T15:23:52.187 回答