SQL:获取最多20天的所有日期

时间:2017-06-16 20:55:32

标签: sql pentaho

我在制定SQL查询时遇到问题,该查询从包含日期的列中返回彼此间隔最多20天的所有日期集。

因此,例如,如果日期是

1/1/2000, 1/15/2000, 1/20/2000, 2/1/2000

这些集合将是:

{(1/1/2000, 1/15/2000, 1/20/2000), (1/15/2000, 1/20/2000, 2/1/2000)}

我只想要最大的设置:例如(1/1 / 2000,1 / 15/2000)不包括在内,因为它将是另一组的子集。

我怀疑答案会使用交叉连接。

1 个答案:

答案 0 :(得分:0)

标准SQL看起来像这样:

select t.date as SetIdentifier, t2.date as date
from t join
     t t2
     on t2.date >= t.date and t2.date < t.date + interval '21 day'
order by t.date, t2.date;

这标识集合中第一天的每一组(假设所有日期都是唯一的)。