Postgres SQL レコードがない時は0と表示したい

レコードにあるフィールドの値を表示したいが、レコードがない時は全く表示されない。

レコードがある時はそのフィールドの値

レコードがない時は0と表示したい。

普通に抽出すると、レコードがない時はnull(レコードがない)状態になってしまうため、プログラム側でnullの時は0と表示するようなコードを書かなければならないが、sumを使うと一発で出る。

SELECT COALESCE(sum(ninzu),0) as ninzu FROM class_mate
WHERE
class = 3

COALESCEはフィールドがnullだった場合に0と表示する。これだけだと、そもそもレコードがなければ何も表示されないが、

sum(ninzu)

とする事で、レコードがなくても0表示をしてくれる。