以下是一个示例的解决方法,具体实现可能因编程语言和使用的数据库而有所不同。这里使用的是Python和SQL语言。
CREATE TABLE data (
date DATE,
region VARCHAR(255),
value INT
);
INSERT INTO data (date, region, value)
VALUES
('2022-01-01', 'A', 0),
('2022-01-02', 'A', 1),
('2022-01-03', 'A', 1),
('2022-01-04', 'A', 1),
('2022-01-01', 'B', 0),
('2022-01-02', 'B', 1),
('2022-01-03', 'B', 0),
('2022-01-04', 'B', 1);
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY region ORDER BY date) AS row_num
FROM data
WHERE value = 1
) AS subquery
WHERE row_num >= 3;
上述SQL查询使用了窗口函数ROW_NUMBER()
来给每个地区的行分配一个行号,然后在外部查询中筛选出行号大于等于3的行,即连续出现3个或更多值为1的行。
这只是一个示例,具体的实现可能需要根据使用的编程语言和数据库进行调整。