Data Engineering/SQL

[SQL] SQL 실행순서

minjiwoo 2024. 8. 21. 10:37
728x90

SQL 실행 순서 

SQL 쿼리를 작성할 때 JOIN 절이나 GROUP BY 절의 위치가 종종 헷갈렸는데, 이는 결국 SQL 쿼리가 실행되는 순서와 관련이 있다. 

  1. FROM : 테이블 선택 
  2. JOIN : 테이블 간 결합하기 
  3. WHERE : 조건에 따라서 행을 필터링하기 
  4. GROUP BY : 필터링된 데이터를 그룹화하기 
  5. HAVING : 그룹화 된 데이터에 대해서 필터링하기 
  6. SELECT : 필요한 열을 선택하기 
  7. 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