【发布时间】:2019-05-16 04:30:51
【问题描述】:
我正在尝试创建一个连续日期已售出 >=200 个单位的输出。我使用前导函数获取下一个开始日期,但无法获得 05/04 开始日期的 05/06 结束日期。我们需要某种循环吗?
CREATE TABLE tbl_sls
(date1 date, Sales int);
INSERT INTO sales
(date1, Sales)
VALUES
('2019-05-01', 200),
('2019-05-02', 200),
('2019-05-03', 100),
('2019-05-04', 200),
('2019-05-05', 200),
('2019-05-06', 200),
('2019-05-10', 200),
('2019-05-11', 200),
('2019-05-12', 100);
我已经编写了下面的代码,但无法达到任何程度。
select date1, sales, rank() over(partition by sales order by date1)
from (
select a.date1, b.sales from
(select date1 from sales
where date1<'2019-05-07') a
left join
(select date1, sales from sales
where sales>=200) b
on a.date1=b.date1
) x
预期输出:
date_start|date_end
'2019-05-01'|'2019-05-02'
'2019-05-04'|'2019-05-06'
'2019-05-10'|'2019-05-11'
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
标签: sql