it-source

SQL: AVG(NULL 값 포함)

criticalcode 2023. 6. 20. 21:41
반응형

SQL: AVG(NULL 값 포함)

AVG() 함수는 NULL 값을 무시하는 것으로 알고 있습니다.

그래서 AVG(4,4,4,4,4,4,NULL) --> 4.

저 같은 경우에는 이런 일이 일어나지 않았으면 합니다.

저는 그런 솔루션이 필요합니다: AVG(4,4,4,4,4,NULL) --> 3,33

테이블 자체에서 NULL 값을 직접 바꾸지 않고 사용할 수 있습니다.

이것을 할 수 있는 방법이 있습니까?

사용하다coalesce()null 열의 실제 값 0을 반환하는 방법

select avg(coalesce(some_column, 0))
from ...

AVG 동작에 대해 올바른 설명입니다. COALESCE를 사용하여 집계에서 NULL을 0으로 변환합니다.

답변은 "Oracle에서 SUM(null)이 0이 아닌 이유"를 참조하십시오.

이 동작에 대한 근거를 찾고 있는 경우 집계 연산자가 NULL 값을 무시하도록 지시하는 ANSI SQL 표준에서 찾을 수 있습니다.

관련 코드는 다음과 같습니다.

Avg(Coalesce(col,0))

사용할 수 있습니다.coalesce또는nvl또한. 그 이후로.coalesce예는 이미 위에 주어졌습니다. 여기에 예가 있습니다.nvl

Avg(Nvl(Column_Name),0)

병합, Nvl, Nvl2 함수는 null 값을 처리하는 경우에 유용합니다.당신은 이것들에 대한 몇 가지 예시와 문서를 찾아봐야 합니다.

NVL, NVL2 또는 COALESCE를 사용하여 이 문제를 해결할 수 있습니다.

이와 같이 이중에서 avg(4,4,4,4,4,nvl(수직,0))를 선택합니다;

또 다른 가능성은 COUNT가 있는 집계 함수 SUM을 사용하여 평균을 계산하는 것입니다.

SELECT SUM(column_with_value) / COUNT(primary_column) FROM ...

언급URL : https://stackoverflow.com/questions/22220449/sql-avg-with-null-values

반응형