Istnieje funkcja SQL AVG(), która pobiera średnią wszystkich wartości z kolumny, ignorując wszystkie wartości NULL. Jeśli trzeba zrobić średnią ważoną, to po prostu użyjemy SUM (value * weight)/SUM (weight) z klauzulą Group By.Tworzenie średniej ważonej - Masy upuszczania dla wartości NULL
Jeśli chciałbym zrobić to drugie, ale niektóre z moich wartości są NULL, to w jaki sposób chciałbym powiedzieć SQL ignorować wagi z wartościami NULL obserwacji w funkcji SUMA (waga)?
Moim drugim problemem jest to, że biorę średnio 90 różnych kolumn naraz, więc chciałbym uniknąć tworzenia 90 nowych zmiennych wagi dla tego obliczenia.
Daj mi znać, jeśli jasno to wyjaśniłam.
Używam SQL Server 2005
@Gordon .... czy to nie bomba, jeśli wartość jest zerowa, ponieważ zostanie ona podzielona przez zero? Lub co się dzieje, gdy wartość jest zerowa – MikeTWebb
@MikeTWebb. . . NULL w * dowolnej * operacji innej niż 'IS NULL' i' IS NOT NULL' zwraca NULL. Jest tak nawet w przypadku dzielenia przez 0. Ale włączyłem drugą wersję na wypadek, gdyby ktoś o tym myślał. Bardziej wyraźnie zwróci wartość NULL, jeśli nic nie pasuje. –
+1 ale 'um' ... Myślę, że chodziło o' sumę'. :-) –