AVG 및 GROUP BY를 사용한 SQL 쿼리
SQL에서는 테이블에서 그룹화된 평균을 추출해야 하는 상황이 발생할 수 있습니다. 이는 AVG() 및 GROUP BY 절을 사용하여 달성할 수 있습니다.
예제 테이블을 고려하세요.
id | pass | val |
---|---|---|
DA02959106 | 5.00 | 44.40 |
08A5969201 | 1.00 | 182.41 |
08A5969201 | 2.00 | 138.78 |
DA02882103 | 5.00 | 44.73 |
DA02959106 | 1.00 | 186.15 |
DA02959106 | 2.00 | 148.27 |
DA02959106 | 3.00 | 111.91 |
DA02959106 | 4.00 | 76.15 |
DA02959106 | 5.00 | 44.40 |
DA02959106 | 4.00 | 76.65 |
각 패스의 평균 값 계산
동일한 'id'에 대한 각 'pass'의 평균값을 계산하려면 다음 쿼리를 사용하세요.
<code class="sql">SELECT id, pass, AVG(val) AS val_1 FROM data_r1 GROUP BY id, pass;</code>
이 쿼리는 'id'와 'pass'를 기준으로 행을 그룹화하고 각 그룹의 평균 'val'. 결과는 다음과 같습니다.
id | pass | val_1 |
---|---|---|
DA02959106 | 1.00 | 186.15 |
08A5969201 | 1.00 | 182.41 |
DA02882103 | 5.00 | 44.73 |
08A5969201 | 2.00 | 138.78 |
DA02959106 | 2.00 | 148.27 |
DA02959106 | 3.00 | 111.91 |
DA02959106 | 4.00 | 76.40 |
DA02959106 | 5.00 | 44.40 |
ID당 한 행에 대한 데이터 피벗
'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 | val_1 | val_2 | val_3 | val_4 | val_5 | val_6 | val_7 |
---|---|---|---|---|---|---|---|
DA02959106 | 186.15 | 148.27 | 111.91 | 76.40 | 44.40 | 0 | 0 |
위 내용은 동일한 \'id\'에 대한 각 \'pass\'의 평균 값을 계산하고 SQL에서 \'id\'당 한 행에 대한 데이터를 피벗하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!