я следующее:SQL db2 группа по первый день каждого года
id date_start date_end
----- ---------- --------
1a3 2001-12-12 2002-12-12
23b 2005-01-24 2008-11-02
11ad 2012-01-15 2014-13-09
19d 2015-01-23 2016-02-04
И я хочу, чтобы получить количество каждого человека, где диапазон дат включает в первый день каждого года.
, например, я могу сделать:
select count(distinct id) from table
where '2001-01-01' between date_start and date_end
, но я хочу, чтобы произвести подсчет за все годы с 2000-2015. Я хочу, чтобы избежать вручную делать:
select count(distinct id) from table
where '2001-01-01' between date_start and date_end
select count(distinct id) from table
where '2002-01-01' between date_start and date_end
select count(distinct id) from table
where '2003-01-01' between date_start and date_end
Я просто возникли проблемы с визуализацией группу пунктом для this.If я только год я мог сделать:
select count(distinct id), year from table
group by year
однако я не могу соответствовать where '2001-01-01' between date_start and date_end
в это групповое предложение.
Может ли кто-нибудь помочь?
Спасибо!
Спасибо, Гордон. Я думаю, что использование фиктивной таблицы здесь ключевое, но я хотел бы избежать жесткого кодирования, если это возможно. – brucezepplin