> 데이터 베이스 > MySQL 튜토리얼 > 데이터베이스 테이블에 있는 여러 열의 평균을 계산하는 방법은 무엇입니까?

데이터베이스 테이블에 있는 여러 열의 평균을 계산하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-31 08:39:10
원래의
868명이 탐색했습니다.

How to Calculate the Average of Multiple Columns in a Database Table?

여러 테이블 열의 평균 계산

데이터베이스 테이블 작업의 맥락에서 여러 열의 평균 값을 계산해야 하는 경우가 많습니다. 이는 데이터를 요약하거나 분석해야 할 때 특히 유용합니다. 프로세스를 보여주기 위해 구체적인 예를 살펴보겠습니다.

시나리오:

R1, R2, R3, R4 값을 나타내는 열이 있는 "Request"라는 테이블이 있습니다. 그리고 R5. 테이블의 각 레코드에 대해 이러한 값의 평균을 확인하려고 합니다.

초기 접근 방식:

이를 달성하기 위해 처음에 다음 쿼리를 시도했습니다.

Select Req_ID, Avg(R1+R2+R3+R4+R5) as Average
from Request
Group by Req_ID
로그인 후 복사

그러나 이 쿼리는 의도한 결과를 제공하지 않습니다. 평균이 아닌 값의 합을 계산합니다.

원인:

AVG 집계 함수를 사용할 때 제공된 인수가 표현식인지 확인하는 것이 중요합니다. 단일 숫자 값으로 평가됩니다. 이 경우 여러 열의 값을 더하여 합계가 생성됩니다.

해결책:

평균을 계산하는 데 사용할 수 있는 두 가지 방법이 있습니다. 올바르게:

1. 하위 쿼리 사용(2008 구문):

SELECT *,
       (SELECT AVG(c)
        FROM   (VALUES(R1),
                      (R2),
                      (R3),
                      (R4),
                      (R5)) T (c)) AS [Average]
FROM   Request
로그인 후 복사

이 접근 방식에서는 하위 쿼리를 사용하여 평균을 계산합니다. 하위 쿼리는 각 열의 값을 선택하고 이를 별도의 행으로 처리합니다. 그런 다음 AVG 집계 함수를 적용하여 평균을 계산합니다.

2. 하위 쿼리에서 UNION 사용(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을 사용하여 여러 열의 모든 값을 단일 열로 결합합니다. 그런 다음 AVG 집계 함수가 결합된 열에 적용되어 평균을 계산합니다.

결과:

두 접근 방식 모두 요청의 각 레코드에 대해 올바른 평균 값을 제공합니다. 테이블. 이러한 솔루션 중 하나를 따르면 여러 테이블 열의 평균을 정확하게 계산하고 원하는 결과를 얻을 수 있습니다.

위 내용은 데이터베이스 테이블에 있는 여러 열의 평균을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿