Mysql: добавить значения столбцов в таблице - PullRequest
0 голосов
/ 02 октября 2018

У меня есть эта структура в моей таблице

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

Можете ли вы помочь мне, пожалуйста

Ответы [ 3 ]

0 голосов
/ 02 октября 2018

Я думаю, вы хотите:

select source_id, coalesce(sum(val1), 0) + coalesce(sum(val2), 0)
from t 
group by source_id;

Я бы сделал NULL преобразование после SUM(), потому что некоторые source_id s имеют только NULL s водин из столбцов.

0 голосов
/ 02 октября 2018
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 
0 голосов
/ 02 октября 2018
  • Используйте функцию Ifnull() для замены значений null на 0.
  • Используйте функцию Sum() для суммирования значений val1 и val2 водно выражение, используя Group By для source_id.

Выполните следующие действия:

SELECT ressource_id, 
       SUM(IFNULL(val1, 0)) + SUM(IFNULL(val2, 0)) AS total 
FROM your_table 
GROUP BY ressource_id 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...