没有您的数据,我们必须从简要问题中提供的线索猜测。我们知道有2个表和2个列名被提及,但第二个表中的列名是未知的。这个问题所暗示的时间精度有所不同,但这并未通过样本数据进行验证。
我想提及时间精度的原因是为了在查询中进行一些补偿以确保记录每天活动的任何测试。如该日期2016年2月17日在2016年2月17日记录测试开始21:52:26.594847
的样本数据:
CREATE TABLE sqltest
(`start_date` datetime, `end_date` datetime)
;
INSERT INTO sqltest
(`start_date`, `end_date`)
VALUES
('2016-02-17 21:52:26', '2016-02-27 21:52:26')
;
CREATE TABLE datelist
(`a_date` datetime)
;
INSERT INTO datelist
(`a_date`)
VALUES
('2016-02-01 00:00:00'),
('2016-02-02 00:00:00'),
('2016-02-03 00:00:00'),
('2016-02-04 00:00:00'),
('2016-02-05 00:00:00'),
('2016-02-06 00:00:00'),
('2016-02-07 00:00:00'),
('2016-02-08 00:00:00'),
('2016-02-09 00:00:00'),
('2016-02-10 00:00:00'),
('2016-02-11 00:00:00'),
('2016-02-12 00:00:00'),
('2016-02-13 00:00:00'),
('2016-02-14 00:00:00'),
('2016-02-15 00:00:00'),
('2016-02-16 00:00:00'),
('2016-02-17 00:00:00'),
('2016-02-18 00:00:00'),
('2016-02-19 00:00:00'),
('2016-02-20 00:00:00'),
('2016-02-21 00:00:00'),
('2016-02-22 00:00:00'),
('2016-02-23 00:00:00'),
('2016-02-24 00:00:00'),
('2016-02-25 00:00:00'),
('2016-02-26 00:00:00'),
('2016-02-27 00:00:00'),
('2016-02-28 00:00:00'),
('2016-02-29 00:00:00')
;
示例查询
select
d.a_date
, count(t.start_date)
from datelist d
left join sqltest t on d.a_date between DATE_SUB(t.start_date,INTERVAL 1 DAY) and t.end_date
group by
d.a_date
;
你已经尝试?我们可以得到一些示例数据和预期输出吗? –
@SebastianBrosch我自己的想法是,要一天一天地在start_date和end_date之间选择案例。 –
@SebastianBrosch我希望预期的输出成为一个表,其中列出了从2011年到2017年(所有日期)的活动用例数 –