我有一张表基本上有:
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文件的文件中。
似乎某个地方有一个子查询,但我还不够先进,无法解决这个问题。
非常感谢任何帮助。如果有帮助,我可以添加细节。
答案 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