22012: division_by_zero
PostgreSQLO que significa?
Uma expressão aritmética tentou uma divisão (ou módulo) por zero. O PostgreSQL não permite divisão por zero e aborta a consulta.
Por que acontece?
A coluna/expressão divisora avaliando como 0; um denominador zero em um cálculo de razão/percentual; divisão por um COUNT ou SUM igual a zero; valores zero inesperados em dados não filtrados.
Como resolver
Use NULLIF para retornar NULL quando o denominador for zero: numerator / NULLIF(denominator, 0). Se desejar, transforme o resultado em um valor padrão com COALESCE: COALESCE(numerator / NULLIF(denominator,0), 0). Ou use CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END. Filtre os casos com zero nos dados antecipadamente.