> 데이터 베이스 > MySQL 튜토리얼 > SQL을 사용하여 다른 두 필드의 각 고유 조합에 대한 필드 평균을 계산하는 방법은 무엇입니까?

SQL을 사용하여 다른 두 필드의 각 고유 조합에 대한 필드 평균을 계산하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-30 10:16:02
원래의
334명이 탐색했습니다.

How to calculate the average of a field for each unique combination of two other fields using SQL?

AVG 및 GROUP BY를 사용한 SQL 쿼리: 각 필드의 평균값 추출

테이블에서 특정 정보를 추출하는 SQL 쿼리를 찾는 경우 , 즉 각 고유 'id' 및 'pass' 값에 대한 'val' 필드의 평균입니다.

이를 달성하려면 간단하지만 효율적인 쿼리를 사용할 수 있습니다.

<code class="sql">SELECT id, pass, AVG(val) AS val_1
FROM data_r1
GROUP BY id, pass;</code>
로그인 후 복사

이 쿼리는 데이터를 'id'와 'pass'로 그룹화하여 각 조합에 대한 'val'의 평균값을 계산합니다. 결과 테이블에는 'id' 및 'pass' 값의 모든 고유 쌍에 대한 행이 포함됩니다.

또는 모든 'pass' 값에 대한 평균 값과 함께 각 고유 'id'에 대한 단일 행을 선호하는 경우 , 다음 쿼리를 사용하세요.

<code class="sql">SELECT d1.id,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 1) as val_1,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 2) as val_2,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 3) as val_3,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 4) as val_4,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 5) as val_5,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 6) as val_6,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 7) as val_7
from data_r1 d1
GROUP BY d1.id</code>
로그인 후 복사

이 쿼리는 각 '통과' 값에 대해 중첩된 하위 쿼리를 사용하여 평균을 계산합니다. 그런 다음 'id'별로 결과를 집계하여 데이터의 통합 보기를 제공합니다.

위 내용은 SQL을 사용하여 다른 두 필드의 각 고유 조합에 대한 필드 평균을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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