본문 바로가기

Wiki/SQL

[빅쿼리] 지난달의 데이터만 추출하기(EXTRACT, CURRENT_DATE)

문제

  • 추출 시점을 기준으로 지난 달의 데이터만 추출하고 싶은 경우다.

해결 방법

SELECT date
FROM table
WHERE EXTRACT(MONTH FROM date) = (EXTRACT(MONTH FROM CURRENT\_DATE('Asia/Seoul')) - 1)

해석하자면, 아래와 같다.

  1. 먼저 EXTRACT 함수를 이용해 date 컬럼에서 월을 추출한다.
  2. 그 다음 CURRENT_DATE와 EXTRACT 함수를 이용해 현재 일자의 월을 가져와서 1을 뺀다.
  3. 각 로우별로 2번에 해당하는 값만 가져오도록 설정하면, 지난 달의 데이터만 가져오게 된다.