GROUP BY
1. 칼럼 그룹화
SELECT 칼럼명 FROM [테이블명] GROUP BY 그룹화 할 칼럼명(alias로 지정한 별칭도 사용 가능);
-- emp 테이블의 deptno 별로 칼럼 출력
SELECT deptno, COUNT(*), SUM(sal) FROM emp GROUP BY deptno;
-- emp 테이블에서 deptno, job을 그룹화
SELECT deptno, job, COUNT(*), SUM(sal) FROM emp GROUP BY deptno, job;
-- student 테이블에서 메인 학과별 학생 수 조회
SELECT deptno1, COUNT(*) FROM student GROUP BY deptno1;
-- student 테이블에서 학년별 평균 키 조회
SELECT grade, format(AVG(height),1) FROM student GROUP BY grade;
2. 조건 처리 후 칼럼 그룹화
SELECT 칼럼명 FROM [테이블명] WHERE 조건식 GROUP BY 그룹화 할 칼럼명;
3. 칼럼 그룹화 후 조건 처리
SELECT 칼럼명 FROM [테이블명] GROUP BY 그룹화 할 칼럼명 HAVING 조건;
-- emp 테이블에서 deptno 별 sal의 평균 중 평균이 2000 이상인것만 출력
SELECT deptno, avg(sal) FROM emp GROUP BY deptno HAVING AVG(sal) >=2000;
4. 조건 처리 후 칼럼 그룹화 한 후 조건 처리
SELECT 칼럼명 FROM [테이블명] WHERE 조건절 GROUP BY 그룹화 할 칼럼명 HAVING 조건;
5. ORDER BY가 존재하는 경우
SELECT 컬럼 FROM 테이블 [WHERE 조건식]
GROUP BY 그룹화할 컬럼 [HAVING 조건식] ORDER BY 컬럼1 [, 컬럼2, 컬럼3 ...];
-- student 테이블에서 각 학과와 학년별 평균 몸무게가 50 이상이고, 최대/최소 몸무게를 조회 후 정렬
SELECT deptno1, grade, COUNT(*), format(AVG(weight),1), MIN(weight), MAX(weight)
FROM student
GROUP BY deptno1, grade
HAVING AVG(weight) > 50
ORDER BY deptno1, grade;
'공부 자료 > DataBase' 카테고리의 다른 글
[SQL] SELECT 및 SELECT 관련 쿼리 (1) | 2023.09.05 |
---|---|
[SQL] CASE문 CASE WHEN THEN END (0) | 2023.09.05 |
[MariaDB] MariaDB 설치하기(맥북 포함) & Sequel Pro 사용 (0) | 2023.09.04 |
[데이터베이스] SQL 명령어 정리 (0) | 2022.10.10 |
[데이터베이스] 테이블 관계 종류 (0) | 2022.10.10 |