728x90
SQL 실행 순서
SQL 쿼리를 작성할 때 JOIN 절이나 GROUP BY 절의 위치가 종종 헷갈렸는데, 이는 결국 SQL 쿼리가 실행되는 순서와 관련이 있다.
- FROM : 테이블 선택
- JOIN : 테이블 간 결합하기
- WHERE : 조건에 따라서 행을 필터링하기
- GROUP BY : 필터링된 데이터를 그룹화하기
- HAVING : 그룹화 된 데이터에 대해서 필터링하기
- SELECT : 필요한 열을 선택하기
- ORDER BY : 결과에 대해 정렬하기
SELECT column_name, SUM(another_column)
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE condition
GROUP BY column_name
ORDER BY column_name;
JOIN 이 GROUP BY 앞에 와야 하는 이유
JOIN 절은 SQL 의 논리적인 순서에서 GROUP BY 보다 선행된다. 테이블 두 개 이상을 결합한 후에, 이 결과에 대해 그룹화하기 때문이다. JOIN 이 실행되지 않고 GROUP BY 를 하게 되면 그룹화할 데이터가 없다는 것이기 때문이다.
WHERE 절이 GROUP BY 앞에 와야 하는 이유
WHERE 절은 테이블에서 데이터를 필터링한다. 따라서 GROUP BY 를 실행하기 이전에 원하는 조건의 데이터를 먼저 필터링해서, GROUP BY 연산을 최적화할 수 있다.
728x90
'Data Engineering > SQL' 카테고리의 다른 글
[SQL] 프로그래머스 SQL 풀이 - SUM, MAX, MIN (0) | 2024.06.19 |
---|---|
[프로그래머스] SELECT 유형 SQL 문제 풀이 (0) | 2024.06.15 |
[MySQL] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러 해결 (0) | 2023.06.06 |
[MySQL] WHERE vs SELECET vs ORDER BY 실행순서 (Unknown column 에러가 나는 이유) (0) | 2023.04.06 |
프로그래머스 SQL - SELECT 문 (0) | 2023.04.03 |