우선 GROUP BY, HAVING, ORDER BY는 "선택 구문"이다.
1. GROUP BY
- 데이터를 특정 칼럼 기준으로 그룹화를 시켜주는 명령어
- GROUP BY는 COUNT(), MAX(), MIN(), SUM(), AVG() 등 집계 함수와 함께 사용
- 그룹을 나누고 다시 그 그룹 안에서 세부그룹으로 나눌 수 있음
- EX) GROUP BY 칼럼1, 칼럼2 => 칼럼1 안에서 칼럼2를 나눌 수 있다
- GROUP BY에 사용된 칼럼들은 반드시 SELECT에도 존재해야 한다
ex)
2. HAVING
- GROUP BY절에 조건을 사용하고 싶을 때 사용하는 명령어
- HAVING 뒤에는 SELECT 구문에서 사용하는 AS 별칭을 사용할 수 없음
⭐ 처음부터 조건을 넣고 싶을때는 WHERE절을 사용하고, 나눠진 그룹에 조건을 넣고 싶을 때는 HAVING절을 사용
ex)
3. ORDER BY
- 테이블을 특정 칼럼을 기준으로 순서를 정렬하고 싶을 때 사용하는 명령어
- 기존적으로 ASC(오름차순)이 적용이 되고, 만약 내림차순을 사용하고 싶으면 DESC을 칼럼 뒤에 붙이면 된다
- 여러가지의 칼럼을 기준으로 정렬 가능
- ORDER BY 칼럼1, 칼럼2, ... => 앞에 오는 칼럼 순서대로 순서가 정렬이 된다
- SELECT 절의 순서 또는 별칭을 통해서 칼럼을 표시 가능
ex)
이렇게 GROUP BY, HAVING, ORDER BY를 사용하면 사용자가 원하는 조건이나 순서를 적용하여, 이를 기반으로 좀 더 분석을 쉽고 간단하게 할 수 있고, 다양한 문제들을 경험하게 된다면 더 복잡한 조건들을 불러올 수 있게 될 것이다.