mysql - mysql中最新列的总和部分

标签 mysql

我的表格看起来像:

ID | a | b | sth_CH | sth_DD | sth_FF | ...
1 | xx | yy | 1 | 5 | 3 | ...
2 | xy | yx | 3 | 1 | 6 | ...

在那里你可以看到我可以有其他列(越来越多)称为 sth_XX ...

问题:

如何对第四列(sth_CH)到最后一列的值求和? 我们可以假设我不知道列名,但我知道它从“sth_”开始(但我认为这是没有必要的)。

我想要类似 SUM(4,table.columns.count) 的值,并对从第四列到最后一列的所有值进行求和。

对于 SUM(4,6) 我想要返回:

9
10

最佳答案

我也同意你应该标准化你的数据模型。但如果您无法做到这一点,这个脚本可以完成这项工作:

set @a := ' ';

select @a := concat(@a, COLUMN_NAME, ' + ')
from INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA ='your schema'
    and TABLE_NAME='your table'
    and column_name not in ('ID', 'a', 'b');

set @a := LEFT(@a, length(@a) -2);
set @sql := concat('select ', @a, ' from <your table> where ...');
prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;

编辑:我后来明白不需要聚合,您需要添加列值。从代码中删除了聚合函数“sum”。 附:如果解决了您的问题,请标记为答案。

关于mysql - mysql中最新列的总和部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168455/

相关文章:

java - Hibernate 标准 LEFT JOIN

mysql - 如何使内部连接高效的mysql

php - 三张表的行数MySQL

asp.net - 检索此数据的最佳方法是什么?

PHP 似乎没有处理要发布到 MySQL 的脚本

php - 选择指定id的条目,以及前后具有相同外键值的条目

mysql - INDEX 或 FULLTEXT 在 MySql 中存储 VARCHAR(1000)

MYSQL:带有二进制数据的 JSON_OBJECT

c# - 如何从 C# 使用 mysql.exe

MySQL:从日期/时间戳列返回日期的 SQL 查询