Es gibt also die SQL-Funktion AVG(), die den Durchschnitt aller Werte in einer Spalte annimmt, wobei alle NULL-Werte ignoriert werden. Wenn man einen gewichteten Durchschnitt machen muss, dann würde man einfach SUM (Wert * Gewicht)/SUM (Gewicht) mit einer Group By-Klausel verwenden.Erstellen eines gewichteten Durchschnittswerts - Löschen von Gewichtungen für NULL-Werte
Wenn ich letzteres machen möchte, aber einige meiner Werte NULL sind, wie würde ich SQL dann dazu bringen, Gewichtungen mit NULL-Wert-Beobachtungen in der SUM (Gewicht) -Funktion zu ignorieren?
Mein anderes Problem ist, dass ich im Durchschnitt 90 verschiedene Spalten auf einmal nehme, also möchte ich vermeiden, 90 neue Gewichtsvariablen für diese Berechnung zu machen.
Lassen Sie mich wissen, ob ich dies klargestellt habe oder nicht.
Ich bin mit SQL Server 2005
@Gordon .... wird nicht diese Bombe, wenn Wert Null ist, da es dann durch Null dividieren? Oder was passiert, wenn der Wert null ist – MikeTWebb
@MikeTWebb. . . NULL in * any * -Operationen außer 'IS NULL' und' IS NOT NULL' gibt NULL zurück. Das ist sogar richtig, um durch 0 zu teilen. Aber ich habe die zweite Version eingeschlossen, falls jemand darüber nachdenken sollte. Es wird deutlicher NULL zurückgeben, wenn nichts passt. –
+1 aber 'um' ... Ich denke du meintest' sum'. :-) –