Wystarczy to zrobić:
SELECT COALESCE(SUM(capacity), 0)
FROM objects
WHERE null IS NOT NULL;
Nawiasem mówiąc, COALESCE wewnątrz suma jest zbędny, nawet jeśli pojemność jest NULL , nie sprawi, że podsumowanie null.
słownie:
create table objects
(
capacity int null
);
insert into objects(capacity) values (1),(2),(NULL),(3);
select sum(capacity) from objects;
To zwróci wartość 6, NOT NULL.
A koalescencja wewnątrz funkcji agregującej jest także zabójczy dla wydajności, ponieważ twój silnik RDBMS nie może po prostu zgrać przez wszystkie wiersze, musi ocenić kolumnę każdego wiersza, jeśli jej wartość jest pusta. Widziałem trochę kwerendy OCD, gdzie wszystkie zagregowane zapytania mają koalesce wewnątrz, myślę, że oryginalne dev ma objaw Cargo Cult Programming, kwerenda jest bardzo bardzo sloooowww. Usunąłem koalescję wewnątrz SUMY, a zapytanie stało się szybkie.
Jaki błąd dostałeś? –