如何解决分组日期范围内有单独的分组,如果之间还有其他日期
我有一个这样的表:
Specification Date
ADS 2020-09-04 00:00:00.000
ADS 2020-09-05 00:00:00.000
ADS 2020-09-06 00:00:00.000
AZR 2020-09-07 00:00:00.000
AZR 2020-09-08 00:00:00.000
ADS 2020-09-09 00:00:00.000
ADS 2020-09-10 00:00:00.000
我想选择一个开始日期和一个结束日期,并按“规范”将它们分组。 因此我的输出应如下所示:
Specification Start End
ADS 2020-09-04 00:00:00.000 2020-09-06 00:00:00.000
AZR 2020-09-07 00:00:00.000 2020-09-08 00:00:00.000
ADS 2020-09-09 00:00:00.000 2020-09-10 00:00:00.000
我尝试过:
select
Specification,MIN(Date) as Start,MAX(Date) as End
from CUSTOMERS
group by Specification
但是这并没有达到我想要的结果。有人有主意吗?
解决方法
您可以尝试以下操作-这是间隙和孤岛的问题
select col1,min(dateval) as start,max(dateval) as end
from
(
select *,row_number() over(order by dateval)-
row_number() over(partition by col1 order by dateval) as grp
from t
)A group by col1,grp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。