我有这样的表:
value1 value2 value3 value4 value5 constant
1 2 3 4 5 2
8 2 8 3 5 2
1 5 3 4 5 3
1 2 6 4 5 3
现在我想做的是,我只想找到那些列数的列的总和作为常量字段中给定的值:
例如在第 1 行中,如果常量值为 2
,
我需要找到 value1+value2
的总和。
如果常量中的值为3
,我需要求和 value 1+ value2 + value3
抱歉英语不好。什么是合适的方法?我已经在谷歌上搜索了一段时间,但找不到合适的方法
最佳答案
值列固定在 1 到 5 之间?如果不是,则需要生成动态查询。
试试这个:
SELECT
IF(constant = 1, value1,
IF (constant = 2, value1 + value2,
IF (constant = 3, value1 + value2 + value3,
IF (constant = 4, value1 + value2 + value3 + value4, value1 + value2 + value3 + value4 + value5)
)
)
)
FROM tab;
已更新
如果我是你,我会这样设计。
tbl1(id, constant),
value_tbl1(tbl1_id, column_seq, value);
SELECT SUM(value)
FROM tbl1 t, value_tbl1 v
WHERE t.id = v.tbl1_id
AND column_seq BETWEEN 1 AND tbl1.constant
关于mysql - 查找不同列数的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20072250/