2012-08-25 1 views
1

X는 숫자와 null 값의 혼합물에 열입니다. null 값을 치료하는 이유는 이해가 안왜 AVG (x)는 ((ISNULL (X, AVR과는 다른 대답을 않는 0))?

을 0으로 AVG 값의 결과를 변경합니다.

그것은 당신의 n (당신이 null 값이있는 경우

(2 + null + 2)/3 = 2 -- with null value 

(2 + 0 + 2)/3 = 2  -- no null value 
+0

감사 : 오른쪽 테이블 아래 documentation에서 보라. 들여 쓰기를 잊어 버렸습니다. – iridescent

답변

5

,가, 고려 요소 따라서 번호를 촬영되지 않는, 이런 식으로해야하지)은 증가하지 않지만, 0은 유효한 값. 예를 들어

당신이있는 경우 : 1,1,6,7,null,3,26 (즉 3.33)로 나누어 총 20 될 것입니다. 그러나 null0으로 대체하면 20/7 (즉, 2.86)이됩니다.

SQLFiddle MySQL 서버에서이 동작을 보여줍니다.

참조는 : 편집에 대한

This section describes group (aggregate) functions that operate on sets of values. Unless otherwise stated, group functions ignore NULL values. 
+0

설명해 주셔서 감사합니다. 내가 최대한 빨리 답을 표시 할 것입니다.) – iridescent

+0

@iridescent : 도움이되기를 기뻐합니다 :) –

관련 문제