22012: division_by_zero
PostgreSQLQue signifie cette erreur ?
Une expression arithmétique a tenté une division (ou un modulo) par zéro. PostgreSQL n'autorise pas la division par zéro et abandonne la requête.
Cause
La colonne/l'expression diviseur vaut 0 ; dénominateur nul dans un calcul de ratio/de pourcentage ; division par un COUNT ou une SUM nul ; valeurs nulles inattendues dans des données non filtrées.
Comment la corriger
Utilisez NULLIF pour renvoyer NULL lorsque le dénominateur est nul : numerator / NULLIF(denominator, 0). Si souhaité, transformez le résultat en valeur par défaut avec COALESCE : COALESCE(numerator / NULLIF(denominator,0), 0). Ou utilisez CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END. Filtrez au préalable les cas nuls dans les données.