Mysql sql求和行数并放入select的列中

Mysql sql求和行数并放入select的列中,mysql,sql,Mysql,Sql,我有一张桌子,基本上有: person activity-code activity-value 每人有多个活动代码(约17个)和活动值。对于exmaple: 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 因此,第一列是人。第二列是该人员的活动代码1的所有活动值之和。第三列是该人员的活动代码2的所有活动值之和。等等 最后,我想这样做,

我有一张桌子,基本上有:

person  activity-code  activity-value
每人有多个活动代码(约17个)和活动值。对于exmaple:

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
因此,第一列是
。第二列是该人员的活动代码1的所有
活动值之和。第三列是该人员的活动代码2的所有
活动值之和。等等

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

似乎有一个子查询在那里的某个地方,但我没有足够的先进,以了解这一点


任何帮助都将不胜感激。如果这有帮助的话,我可以添加细节。

不幸的是,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

+1
送给你的朋友!顺便问一下,您使用的sql格式化程序是什么DIt如下所示:从
活动中选择*,求和(当
活动ID
=1然后值结束时的情况)总计1,求和(当
活动ID
=2然后值结束时的情况)总计2,求和(当
活动ID
=3然后值结束时的情况)总计3,其中。。。这就是我想要的,但我真的不想在SUM(CASE…end)中输入17次。