Вы можете использовать coalesce()
. Я думаю, что этого достаточно:
select col1, col2,
coalesce(sum(case when col3 = 'A' and col4 = '+' then col5 end), 0)
from mytable
group by col1, col2;
На самом деле это выражение:
sum(case when col3 = 'A' and col4 = '+' then col5 else 0 end)
Невозможно вернуть NULL
в запросе с group by
- каждая группа имеет хотя бы одну строку, и else
гарантирует 0
возврат, а не NULL
.
Итак, это также должно делать то, что вы хотите:
select col1, col2,
sum(case when col3 = 'A' and col4 = '+' then col5 end)
from mytable
group by col1, col2;