我有一张看起来像这样的 table 。
ID_ACTIVITY ID_CLASS EXEC_VALUE
ACT_III A 450
ACT_I B 550
ACT_II A 750
ACT_III B 550
ACT_II A 650
ACT_I A 750
ACT_I B 750
ACT_III A 950
ACT_III A 150
我想根据此表创建一个报告到某种数据透视表中。这应该是报告输出
ID_ACTIVITY A_COUNT B_COUNT AB_SUM
ACT_I 1 2 2050
ACT_II 2 NULL 1500
ACT_III 3 1 2100
注意:
A_COUNT
和B_COUNT
根据ID_CLASS
中的值动态变化AB_SUM
基于每个ID_CLASS
中每个ID_ACTIVITY
中EXEC_VALUE
的值
我已经使用 PHP 完成了它,但我想知道是否可以用 MySQL 方式完成它,并且生成大约数千个数据是否更快?
最佳答案
您可以进行条件聚合:
select
id_activity,
sum(case when id_class = 'A' then 1 end) a_count,
sum(case when id_class = 'B' then 1 end) b_count,
sum(exec_value) ab_sum
from mytable
group by id_activity
关于mysql - 如何将此 mysql 表转换为数据透视表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083847/