SQLite의 With 절에서 재귀를 사용하여 날짜 데이터 생성
단순히 날짜로
group by
그렇다면 이벤트가 발생한 날짜만으로 group화된 데이터가 집계되어 날짜가 날아가 버리는군요?이런 경우에 날짜 목록의 데이터와 join하면 문제 없습니다만, 그 때문에 tabel이나 view를 만드는 것도 ~라고 할 때 이번 테크닉을 사용할 수 있습니다.
하는 방법
예를 들어 2021년 02월 날짜 목록을 생성합니다.
WITH RECURSIVE calendar(calendar_date) AS (
SELECT
-- ここが始まりの日付
DATE('2021-02-01') AS calendar_date
UNION ALL
-- UNION ALL 以下が再帰処理部分
SELECT
DATE(calendar_date, '+1 day') AS calendar_date
FROM calendar
WHERE
-- ここが終わりの日付
calendar_date < DATE('2021-02-28')
)
-- ここが実際のSELECT文
SELECT calendar_date FROM calendar;
calendar_date
는 2021-02-01
로 시작하고, 재귀적으로 select 가 실행될 때마다 calendar_date
에 +1day
되고, 그것이 2021-02-28
까지 계속됩니다. 그 결과가 모두 UNION ALL
로 연결되어 calendar
라는 하나의 테이블이 됩니다.
결과
이것은 Redash의 표시입니다. BI 도구 등에서 날짜 목록을 준비하는 데 유용합니다.
참고
WITH RECURSIVE calendar(calendar_date) AS (
SELECT
-- ここが始まりの日付
DATE('2021-02-01') AS calendar_date
UNION ALL
-- UNION ALL 以下が再帰処理部分
SELECT
DATE(calendar_date, '+1 day') AS calendar_date
FROM calendar
WHERE
-- ここが終わりの日付
calendar_date < DATE('2021-02-28')
)
-- ここが実際のSELECT文
SELECT calendar_date FROM calendar;
이것은 Redash의 표시입니다. BI 도구 등에서 날짜 목록을 준비하는 데 유용합니다.
참고
Reference
이 문제에 관하여(SQLite의 With 절에서 재귀를 사용하여 날짜 데이터 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kazuhei/items/4949476e4bd25e96ed8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)