Проблема с правым объединением состоит в том, что таблица a
должна отображаться на правой стороне объединения. Или, используя левое соединение, мы могли бы написать:
SELECT
a.category,
a.number + COALESCE(b.number, 0) AS number
FROM tablea a
LEFT JOIN tableb b
ON a.category = b.category;
Но этот ответ предполагает, что таблица a
будет содержать все категории, которые вы хотите отобразить в наборе результатов. Для более общего решения нам может понадобиться полное внешнее соединение:
SELECT
COALESCE(a.category, b.category) AS category,
COALESCE(a.number, 0) + COALESCE(b.number, 0) AS number
FROM tablea a
FULL OUTER JOIN tableb b
ON a.category = b.category;