Création d'une moyenne pondérée - Suppression des poids pour les valeurs NULL
Donc, il y a le SQL de la Fonction AVG(), qui prend la moyenne de toutes les valeurs dans une colonne, en ignorant toutes les valeurs NULL. Si l'on a besoin de faire une moyenne pondérée, alors qu'ils avaient juste l'utilisation de la SOMME(valeur de poids)/SOMME(poids) avec une clause Group By.
Si je veux faire le dernier, mais certains de mes valeurs sont NULLES, alors comment pourrais-je aller dire à SQL pour ignorer le poids avec la valeur NULL observations dans la SOMME(poids)?
Mon autre problème est que je suis prenant une moyenne de 90 différentes colonnes à la fois, donc je voudrais éviter de faire 90 poids de nouvelles variables pour ce calcul.
Laissez-moi savoir si j'ai fait ce clair ou pas.
Je suis à l'aide de SQL Server 2005
source d'informationauteur Jared
Vous devez vous connecter pour publier un commentaire.
Vous utilisez conditionnelle résumant comme dénominateur:
Si le poids est toujours plus grand que 0, alors vous n'avez pas à vous soucier de diviser par 0. Qui ne pourrait se produire que lorsque toutes les valeurs sont NULLES. Et, dans ce cas, le numérateur serait NULLE.
Vous pouvez également membre de phrase comme:
ou comme:
C'est plus détaillé, mais il est très clair que vous êtes ignorant des valeurs NULL à la fois le numérateur et le dénominateur.