我的桌子上有这个结构
id|source_id|val1|val2
1 |1 |10 |NULL
2 |1 |NULL|3
3 |2 |NULL|5
4 |2 |4 |NULL
5 |3 |7 |NULL
我想在mysql中使用它
source_id|total
1 |13
2 |9
3 |7
你能帮我吗
答案 0 :(得分:4)
执行以下操作:
SELECT ressource_id,
SUM(IFNULL(val1, 0)) + SUM(IFNULL(val2, 0)) AS total
FROM your_table
GROUP BY ressource_id
答案 1 :(得分:2)
我想你想要
select source_id, coalesce(sum(val1), 0) + coalesce(sum(val2), 0)
from t
group by source_id;
我会在NULL
之后的{em>之后进行SUM()
转换,因为某些source_id
仅在其中一列中有NULL
。
答案 2 :(得分:0)
SELECT q.resource_id,
( q.val1 + q.val2 ) AS total
FROM (SELECT resource_id,
Ifnull(Sum(val1), 0) AS val1,
Ifnull(Sum(val2), 0) AS val2
FROM `table`
GROUP BY resource_id) AS q