是否有任何简单的方法可以获取所选行数的每列的总和。 如果不是简单的仅 mysql 查询,任何 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+)这样的表重复此操作。
最佳答案
您将需要对列和表的 INFORMATION_SCHEMA View 执行 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'
这将为您提供“sum(col-1),sum(col-2)....sum(col-N)”部分。您可以对表格执行类似的操作。 WHERE 部分也是 CONCAT 的一部分。最后您将有一个要执行的脚本。
关于mysql 为选定的行数生成每列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23112666/