sql sum行并放入select列

时间:2012-09-29 14:34:57

标签: mysql sql

我有一张表基本上有:

person  activity-code  activity-value

每个人有多个活动代码(大约17个)和活动值。例如:

A  1   10
A  1   12
A  2   4
B  1   5
B  2   3
B  2   8

我想要的是一个返回类似于:

的select语句
A   22 4
B   5  11

所以第一列person第二列是该人的所有activity-values for the activity-code 1的总和。 第三列是该人的所有activity-values for the activity-code 2的总和。等...

最后我想这样做并在那里使用OUTFILE命令,因为我想将总数转储到要导入excel文件的文件中。

似乎某个地方有一个子查询,但我还不够先进,无法解决这个问题。

非常感谢任何帮助。如果有帮助,我可以添加细节。

1 个答案:

答案 0 :(得分:2)

不幸的是,Mysql缺少其他数据库中存在的pivot命令,这使得这类事情变得轻而易举。你遇到了像

这样的事情
 select
      person,
      sum(case activitycode when 1 then activityvalue else 0 end),
      sum(case activitycode when 2 then activityvalue else 0 end),
      ....
 from 
      yourtable
 group by
      person