요 며칠간 프로그래머스의 SQL 문제를 푸는 것에 푹 빠져있었습니다.
기본적인 문법 작성순서만으로도 큰 도움이 되어서 간단하게 정리해보았습니다.
쿼리 문법 작성 순서
- SELECT 컬럼명
- FROM 테이블명
- WHERE 조건식
- GROUP BY 컬럼명
- HAVING 조건식
- ORDER BY 컬럼명
쿼리 실행 순서
1. FROM & JOIN
데이터의 총 작업량을 결정하기 위해 가장 먼저 실행됨.
서브쿼리가 있는 경우, 결합되는 테이블의 모든 열과 행을 포함한 임시 테이블이 작성될 수 있음.
2. WHERE
작업 데이터의 총 작업량이 정해지면, WHERE 절에 명시된 제약 조건을 충족하지 않는 행은 제거
3. GROUP BY
남은행들을 지정된 컬럼의 공통값을 기반으로 GROUP BY로 묶음
4. HAVING
GROUP BY로 묶인 행에 HAVING 절에 명시된 조건을 충족 시키지 못하는 데이터 제거
5. SELECT
SELECT에 지정된 컬럼 데이터를 추출함
6. DISTINCT
중복되는 행을 제거함, 정렬을 하지 않음
7. ORDER BY
규칙에 맞게 오름차순 / 내림차순 정렬
8. LIMIT / OFFSET
지정 범위를 벗어나면 제거
[출처] https://sqlbolt.com/lesson/select_queries_order_of_execution
SQLBolt - Learn SQL - SQL Lesson 12: Order of execution of a Query
Now that we have an idea of all the parts of a query, we can now talk about how they all fit together in the context of a complete query. Complete SELECT query SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_table ON m
sqlbolt.com