PostgreSQLでゼロ除算を回避する

PostgreSQLでは以下のようにゼロ除算を行うと、ERROR: division by zeroというエラーが発生する。

select 1 / 0; -- ERROR:  division by zero

ゼロ除算となる場合に値をNULLとして扱いたい場合は、分母に対してNULLIF()関数を使用することでゼロ除算を回避できる。

select 1 / NULLIF(0, 0); -- NULL

ゼロ除算となる場合に値を0として扱いたい場合は、NULLIF()関数とCOALESCE()関数を併用すれば良い。

select COALESCE(1 / NULLIF(0, 0), 0); -- 0

参考1(https://www.geeksforgeeks.org/how-to-avoid-division-by-zero-in-postgresql/)
参考2(https://blog.amedama.jp/entry/2017/06/29/204834)