je devenais une division par 0 erreur avec ce code:Redshift division par zéro Puzzler
CASE
WHEN DENOMINATOR >= 0
THEN SUM(INT1 * INT2/DENOMINATOR)
ELSE 0
END AS RATIO
Cependant, lorsque je l'ai changé le code suivant, cela a fonctionné.
CASE
WHEN DENOMINATOR >= 0
THEN SUM(INT1) * INT2/DENOMINATOR
ELSE 0
END AS RATIO
Quelqu'un peut-il m'aider à comprendre la raison pour que je puisse éviter cela dans le futur? BTW, le premier échantillon a travaillé dans Vertica. Je réalise que faire la somme de ce qui doit être additionné plutôt que de faire le calcul avant que la sommation soit une meilleure pratique de programmation. Cependant, je suis toujours curieux.
'CASE WHEN DENOMINATOR> = 0' ... semble faux ... si vous essayez d'éviter une erreur de division par 0 ... ne voulez-vous pas dire'> '0 pas'> = 'ou juste '<>' 0 si vous voulez autoriser les négatifs? – xQbert
Je suppose que les dénominateurs négatifs devraient être 0. donc l'autre si juste> pas> = – xQbert
La question du nombre négatif est sans rapport avec la question. Le point DEMONIMATOR ne devrait pas être zéro. J'essaie de comprendre pourquoi on travaille et l'autre me donne une erreur. – cjremley