SQL/SQLite

[SQLite] with 구문

jihuSunbae 2024. 10. 3. 19:38

 

 

여러 절차를 거쳐야 하는 SQL 쿼리가 있을 수 있다. 

WITH 구문은 중간 결과를 테이블로 저장할 수 있게 한다. 

 

형식

WITH 중간테이블명 AS (
       SELECT 컬럼1, 컬럼2, .. 
       FROM 테이블
)

SELECT 컬럼들
FROM 중간테이블

 

 

* 주의점은 WITH 구문만 써놓으면 오류가 난다. 

최종 결과를 위한 중간 테이블이기 때문에, 꼭 WITH 구문 뒤에 SELECT 문을 붙여줘야 한다. 

 

 

 

예시 코드 

문제: 다음날의 미세먼지 농도가 오늘 보다 짙은 날만 구하기

https://solvesql.com/problems/bad-finedust-measure/

WITH table_a AS(
  SELECT 
    measured_at AS today, 
    LEAD(measured_at) OVER (ORDER BY measured_at) AS next_day,
    pm10 AS pm10,
    LEAD(pm10) OVER (ORDER BY measured_at) AS next_pm10
  FROM measurements
)
SELECT * 
FROM table_a
WHERE next_pm10 > pm10