SQL 함수 AVG()는 모든 NULL 값을 무시하고 열의 모든 값의 평균을 취합니다. 가중 평균을해야하는 경우 Group By 절에 SUM (value * weight)/SUM (weight)을 사용하면됩니다.가중 평균 생성 - NULL 값에 대한 가중치 감소
후자를 원하지만 내 값 중 일부가 NULL 인 경우 SUM (체중) 함수에서 NULL 값 관측치가있는 가중치를 무시하도록 SQL을 호출하는 방법은 무엇입니까?
다른 문제는 평균 90 개의 다른 열을 한꺼번에 가져 오는 것입니다. 따라서이 계산에 90 개의 새 가중치 변수를 사용하지 않는 것이 좋습니다.
내가 이것을 분명하게했는지 알려주세요. 나는 당신이 분모로 조건 합산을 사용 SQL 서버 2005
@Gordon .... 값이 0 인 경우 0으로 나누면 해당 폭탄을 사용하지 않겠습니까? 또는 값이 null 일 때 어떻게됩니까 – MikeTWebb
@MikeTWebb. . . * IS NULL과 IS NOT NULL을 제외한 * 연산에서 NULL은 NULL을 반환한다. 0으로 나눈 경우에도 마찬가지입니다.하지만 누군가가 그것에 대해 생각할 수도 있기 때문에 두 번째 버전을 포함 시켰습니다. 일치하는 것이 없으면 NULL을 더 명확하게 반환합니다. –
+1하지만 "음"... 나는 당신이 '합계'를 의미한다고 생각합니다. :-) –