22012: division_by_zero
PostgreSQLЧто это значит?
Арифметическое выражение попыталось выполнить деление (или взятие остатка) на ноль. PostgreSQL не допускает деления на ноль и прерывает запрос.
Почему возникает?
Столбец/выражение делителя равно 0; нулевой знаменатель при вычислении отношения/процента; деление на COUNT или SUM, равные нулю; неожиданные нулевые значения в нефильтрованных данных.
Как исправить
Используйте NULLIF, чтобы возвращать NULL при нулевом знаменателе: numerator / NULLIF(denominator, 0). При желании превратите результат в значение по умолчанию с помощью COALESCE: COALESCE(numerator / NULLIF(denominator,0), 0). Либо используйте CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END. Заранее отфильтруйте нулевые случаи в данных.