有没有简单的方法来获取所选行数的每列的总和。 如果不是一个简单的mysql-only查询任何php / perl-mysql组合也会这样做。
select sum(col-1),sum(col-2)....sum(col-N) from 4gc_1h_atch_enb where EVENT_TIME between '2014-04-15 00:00:00' and '2014-04-15 23:00:00' and ENB='310-120-401409(M)';
表有50多列,我还要为多个(30+)这样的表重复这个。
答案 0 :(得分:1)
您需要为COLumns和Tables执行带有INFORMATION_SCHEMA视图的CONCAT,然后使用GROUP_CONCAT。基本结构如下所示:
SELECT CONCAT(GROUP_CONCAT(CONCAT('SUM(',COLUMN_NAME,')')),',',(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '4gc_1h_atch_enb'
AND DATA_TYPE <> 'int'))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '4gc_1h_atch_enb'
AND DATA_TYPE = 'int'
那将给你&#34; sum(col-1),sum(col-2).... sum(col-N)&#34;部分。你可以用表做类似的事情。 WHERE部分也是CONCAT的一部分。最后,您将有一个要执行的脚本。