Просто сделайте это:
SELECT COALESCE( SUM(capacity), 0)
FROM objects
WHERE null IS NOT NULL;
Кстати, COALESCE внутри SUM является избыточным, даже если емкость равна NULL, сводка не станет нулевой.
Для остроумия:
create table objects
(
capacity int null
);
insert into objects(capacity) values (1),(2),(NULL),(3);
select sum(capacity) from objects;
Это вернет значение 6, а не ноль.
И объединение внутри агрегатной функции также является фактором снижения производительности, так как ваша СУБД не может просто перебрать все строки, она должна оценить столбец каждой строки, если его значение равно нулю. Я видел небольшой OCD-запрос, в котором все совокупные запросы имеют слияние внутри, я думаю, что у оригинального разработчика есть симптом Cargo Cult Programming , запрос очень медленный. Я удалил слияние внутри SUM, затем запрос стал быстрым.