我的table上有这个结构
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
你能帮帮我吗
lnlaulya1#
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
slmsl1lt2#
我想你想要:
select source_id, coalesce(sum(val1), 0) + coalesce(sum(val2), 0) from t group by source_id;
我会做的 NULL 之后的转换 SUM() ,因为有些 source_id 我们只有 NULL 在其中一列中。
NULL
SUM()
source_id
mlnl4t2r3#
使用 Ifnull() 要替换的函数 null 值为0。使用 Sum() 函数对单个表达式中的val1和val2求和,使用 Group By 在源id上。执行以下操作:
Ifnull()
null
Sum()
Group By
SELECT ressource_id, SUM(IFNULL(val1, 0)) + SUM(IFNULL(val2, 0)) AS total FROM your_table GROUP BY ressource_id
3条答案
按热度按时间lnlaulya1#
slmsl1lt2#
我想你想要:
我会做的
NULL
之后的转换SUM()
,因为有些source_id
我们只有NULL
在其中一列中。mlnl4t2r3#
使用
Ifnull()
要替换的函数null
值为0。使用
Sum()
函数对单个表达式中的val1和val2求和,使用Group By
在源id上。执行以下操作: