가중 평균을 구하려고 하는데요.. 0 1 5,076

by DDRCHO [SQL Query] [2012.05.25 11:26:55]


아래와 같이 데이터가 있을때 가중평균을 구하려고합니다.

A열     B열
10         5
5           1
20         2

이럴경우 원하는 결과값은
(10 * 5) + (5 * 1) + (20 * 2) / (5 + 1 + 2) = 11.875 인데요.

문제는 데이터가 아래와 같이 빵꾸가 나있습니다.

A열     B열
10        5
5
            5
20        2

이럴경우엔 양쪽 열 모두 데이터가 있는 경우에 한해서만 가중평균을 내고 싶습니다.
원하는 결과값은 (10 * 5) + (20 * 2) / (5 + 2) = 12.857 입니다.

이걸 쿼리로 구현코자 하는데 조언좀 부탁드리겠습니다.
감사합니다.
by 마농 [2012.05.25 13:17:46]
SELECT SUM(a * b) / SUM(b) v
  FROM t
 WHERE a IS NOT NULL
   AND b IS NOT NULL
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입