다음 구조 (차트를 생성하는 데 사용되는 일부 조인 등)가 있습니다.0으로 SQL 쿼리의 날짜 간격 채우기
일부 ID에는 모든 날짜에 대한 데이터가 없으므로 차트에 점선이 표시됩니다.
질문은 각 ID에 누락 날짜를 추가하고 데이터 셀에 0을 채우려면 어떻게해야합니까? 스크립트로
: 즉
with t as (
<your query here>
)
select i.id, rt.roundedtime, coalesce(data, 0) as data
from (select distinct id from t) i cross join
(select distinct roundedtime rt from t) rt left join
t
on t.id = i.id and t.roundedtime = rt.roundedtime;
, 날짜와 cross join
를 사용 id
의 목록을 작성합니다
(67, '2016-09-28 00:00:00.000',1),
(178, '2016-09-28 00:00:00.000',6),
(42, '2016-09-25 00:00:00.000',1),
(66, '2016-09-25 00:00:00.000',122),
(67, '2016-09-25 00:00:00.000',2),
(10, '2016-09-24 00:00:00.000',5),
(13, '2016-09-24 00:00:00.000',4),
(66, '2016-09-24 00:00:00.000',198),
(67, '2016-09-24 00:00:00.000',15),
(178, '2016-09-24 00:00:00.000',4),
(10, '2016-09-23 00:00:00.000',1),
(13, '2016-09-23 00:00:00.000',2),
(42, '2016-09-23 00:00:00.000',4),
(66, '2016-09-23 00:00:00.000',208),
(67, '2016-09-23 00:00:00.000',15)
일종의 일정표를 사용해야한다고 생각합니다. –
[SQL : 사용자 수에 대한 일별 보고서]의 가능한 복제본 (http://stackoverflow.com/questions/39849213/sql-daily-report-for-with-user-counts) – JohnHC
@JohnHC 나는 시각화 할 수 없었습니다. 데이터 구조는 이것이 중복인지 확실하지 않습니다. – espressionist