집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 NULL 값이 있는 여러 열의 평균을 올바르게 계산하는 방법은 무엇입니까?
여러 열의 평균
테이블에 있는 여러 열의 평균을 계산할 때 Null 허용 여부를 올바르게 처리하는 것이 중요합니다. 다음 상황을 고려하십시오.
문제:
다음 데이터가 포함된 "요청"이라는 테이블이 있습니다.
Req_ID R1 R2 R3 R4 R5 R12673 2 5 3 7 10 R34721 3 5 2 1 8 R27835 1 3 8 5 6
원하는 작업은 다음과 같습니다. R1, R2, R3, R4 및 R5 열의 평균을 표시합니다. 그러나 다음 쿼리를 사용하는 경우:
Select Req_ID, Avg(R1+R2+R3+R4+R5) as Average from Request Group by Req_ID
평균 대신 값의 합계를 구합니다.
해결책:
문제는 NULL 값을 처리하는 데 있습니다. 열이 NULL을 허용하는 경우 NULL의 합계도 NULL입니다. 평균을 올바르게 계산하려면 NULL을 무시해야 합니다.
Post-2008 구문:
SQL Server 2008 이상을 사용하는 경우 다음을 사용할 수 있습니다. 다음 구문:
SELECT *, (SELECT AVG(c) FROM (VALUES(R1), (R2), (R3), (R4), (R5)) T (c)) AS [Average] FROM Request
이 구문은 VALUES 절을 사용하여 행이 하나인 테이블을 구성합니다. 각 열. 그런 다음 AVG 집계가 이 테이블에 적용되고 NULL 값이 포함된 모든 행은 무시됩니다.
2008년 이전 구문:
SQL Server 2005 또는 이전에는 다음 구문을 사용할 수 있습니다.
SELECT *, (SELECT AVG(c) FROM (SELECT R1 UNION ALL SELECT R2 UNION ALL SELECT R3 UNION ALL SELECT R4 UNION ALL SELECT R5) T (c)) AS [Average] FROM Request
이 구문은 UNION ALL을 사용하여 각 열에 대해 하나의 행이 있는 테이블입니다. 그런 다음 NULL 값이 포함된 모든 행을 무시하고 AVG 집계가 이 테이블에 적용됩니다.
위 내용은 SQL Server에서 NULL 값이 있는 여러 열의 평균을 올바르게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!