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次。