【发布时间】:2018-11-08 22:31:54
【问题描述】:
我目前有一个数据集,其中结果范围跨越日期:15-01-2017 到 30-04-2018
因此,我的min(date) 将是15-01-2017。
但是,我想返回结果,如果我的 min(date) 不是一个完整的月份,它应该从下一个完整的月份开始给我结果(即:01-02-2017 到 30-04-2018)。
希望能找到方向
谢谢
【问题讨论】:
我目前有一个数据集,其中结果范围跨越日期:15-01-2017 到 30-04-2018
因此,我的min(date) 将是15-01-2017。
但是,我想返回结果,如果我的 min(date) 不是一个完整的月份,它应该从下一个完整的月份开始给我结果(即:01-02-2017 到 30-04-2018)。
希望能找到方向
谢谢
【问题讨论】:
这将返回下个月的开始,除非它是当月的第一天:
trunc(add_months(min(datecol)-1,1), 'mon')
在最小日期的前一天加上一个月(即只有 1 号会导致上个月),然后得到该月的 1 号。
根据您的实际查询,您可以使用
进行过滤qualify datecol >= trunc(add_months(min(datecol) over (partition by ??)-1,1), 'mon')
【讨论】: