[정리노트] SQLD 개정판 - GROUP BY
GROUP BY
- 각 행을 특정 조건에 따라 그룹으로 분리하여 계산하도록 하는 구문식
- GROUP BY 절에 그룹을 지정할 컬럼을 전달 (여러 개 전달 가능)
- 만약 그룹 연산에서 제외할 대상이 있다면 미리 WHERE 절에서 해당 행을 제외함 (WHERE 절이 GROUP BY 절보다 먼저 수행되므로)
- 그룹에 대한 조건은 WHERE 절에서 사용할 수 없음
- SELECT 절에 집계 함수를 사용하여 그룹연상 결과 표현
- GROUP BY 절을 사용하면 데이터가 요약되므로, 요약되기 전 데이터와 함께 출력할 수 없음
ex) 부서별(DEPARTMENT_ID) 급여 총 합과 급여 평균 출력
SELECT DEPARTMENT_ID, SUM(SALARY), ROUND(AVG(SALARY))
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID;
ex) 직군(JOB_ID) 별 급여 총 합과 급여 평균 출력
SELECT JOB_ID, SUM(SALARY), ROUND(AVG(SALARY))
FROM EMPLOYEES
GROUP BY JOB_ID;
ex) Group by의 잘못된 예
→ Group by 절에 DEPTNO를 사용하면 DEPTNO가 같은 값끼리 묶여서 요약 정보만 SELECT 절에 표현 가능. 따라서 Group by 컬럼과 집계 함수를 사용한 결과만이 전달 가능
→ Group by 절에 명시되지 않은 컬럼 전달 불가!
반응형
'스터디 > SQL' 카테고리의 다른 글
[정리노트] SQLD 2024년 개정판 - ORDER BY (4) | 2024.08.21 |
---|---|
[정리노트] SQLD 2024년 개정판 - HAVING (46) | 2024.08.21 |
[정리노트] SQLD 2024년 개정판, WHERE (55) | 2024.08.20 |
[정리노트] SQLD 2024년 개정판 - 함수 (49) | 2024.08.20 |
[정리노트] SQLD 2024년 개정판 - SELECT (FROM 포함) (45) | 2024.08.20 |