我有一个表格,其架构类似于以下
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)
并每年输出一行“行”,并将各个月作为列。
由于
答案 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