选择平面数据为表格格式

时间:2012-09-12 15:05:27

标签: mysql

我有一个表格,其架构类似于以下

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, monthsum(amount)并每年输出一行“行”,并将各个月作为列。

由于

1 个答案:

答案 0 :(得分: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