Kein Ergebnis bei Addition wenn ein Glied fehlt

PVbeiNacht

Benutzer
Beiträge
14
Liebes Forum.
Habe folgende Abfrage:
Code:
SELECT
    from_unixtime(ts/1000,'%Y-%m-%d') AS metric,
    floor(ts/1000) as time_sec,
    max(CASE WHEN id=183 THEN val/1000  END) + max(CASE WHEN id=190 THEN val END) + max(CASE WHEN id=191 THEN val END) AS value
FROM ts_number
WHERE $__unixEpochFilter(ts/1000) and id IN(183,190,191)
GROUP BY metric
order by ts
Wenn nun einer der drei 'id' fehlt bringt die Addition
Code:
max(CASE WHEN id=183 THEN val/1000  END) + max(CASE WHEN id=190 THEN val END) + max(CASE WHEN id=191 THEN val END)
den Wert 0.
Hat jemand vielleicht eine Lösung dafür?
 
Werbung:
SQL hat dafür die coalesce() - Funktion:

Code:
test=# select NULL  + 1;
 ?column?
----------
         
(1 row)

test=*# select coalesce(NULL,0)  + 1;
 ?column?
----------
        1
(1 row)

test=*#
 
Werbung:
Zurück
Oben