데이터가 없어도 임시 테이블로 기준 날짜들이 나오게 하고 싶습니다... 마치 반복문 처럼 미리 만들어진 세트라고 할까요??
사용목적은 기간 베이스로 사용하고자 합니다.
예를들면 어떤 데이터가 주기적으로 들어오는데 예상치 못하게 못들어올 경우 이를 파악하기 어려운 문제가 있습니다. (다양한 방법이 있지만 데이터 계산을 할 때 누락되면 어디가 비어있는지 쉽게 파악이 안되는 문제)
그래서기준 날짜를 기준으로 left outer join을 걸어서 null 값일 때 x 를 입력하려고 하는데요.임시방편으로 엑셀로 기준 날짜들을 만들어서 테이블에 넣어두고 사용했습니다.
이런 방법이 혹시 쿼리로 간단하게 할 수 있는지 궁금합니다.
ex.
select a.dtm,ifnull(round(b.logvalue,2),'x') val from (select dtm from dtm_source) a left join datas b on b.LogDateTime=dtm and b.name = 'test';
에서 a 테이블 부분이 쿼리로 임시테이블을 만들 수 있는건지..? dtm 컬럼의 값 datetime 타입으로 2020-06-30 18:00:00 부터 5분 단위로 들어있음
WITH RECURSIVE dtm_source AS ( SELECT CAST('2020-12-04 09:00:00' AS DATETIME) dtm -- 검색 시작 시간 UNION ALL SELECT dtm + INTERVAL 5 MINUTE FROM dtm_source WHERE dtm < CAST('2020-12-04 11:00:00' AS DATETIME) -- 검색 종료 시간 ) SELECT a.dtm , b.logvalue FROM dtm_source a LEFT OUTER JOIN datas b ON b.LogDateTime = a.dtm AND b.name = 'test' ;