唯一字段列表

丹尼尔·达尔

我有一个包含以下数据的表

Modifieddate, Frequency  

2015-01-15   Ad-hoc  
2015-01-19   Weekly  
2015-01-20   Weekly  
2016-09-23   Ad-hoc  
2016-09-25   Ad-hoc  
2017-09-20   Monthly  

我想对这张表进行分组,以显示该表何时从 Ad-Hoc 变为 Weekly 以及从 Weekly 再次变为 Ad-hoc。我不想知道桌子什么时候从每周变为每周。茶几应该是这样的。

Startdate, Enddate, Frequency 

2015-01-15 2015-01-19 Ad-hoc  
2015-01-19 2016-09-23 Weekly  
2016-09-23 2017-09-20 Ad-hoc  
2017-09-20 getdate()  Monthly

你会怎么做?

Damien_The_Unbeliever

一个双重GROUP BY操作可以找到这个数据:

declare @t table (ModifiedDate date,Frequency varchar(19))
insert into @t(ModifiedDate, Frequency) values
('20150115','Ad-hoc'),
('20150119','Weekly'),
('20150120','Weekly'),
('20160923','Ad-hoc'),
('20160925','Ad-hoc'),
('20170220','Monthly')

;With Ends as (
    select t1.ModifiedDate as StartAt,MIN(t2.ModifiedDate) as EndAt,t1.Frequency
    from
        @t t1
            inner join
        (select * from @t union all select GETDATE(),'dfdhfhdsfjfh') t2
            on
                t1.Frequency != t2.Frequency and
                t1.ModifiedDate < t2.ModifiedDate
    group by
        t1.ModifiedDate,t1.Frequency
)
select MIN(StartAt) as StartAt,EndAt,Frequency from Ends
group by EndAt,Frequency
order by StartAt

结果:

StartAt    EndAt                   Frequency
---------- ----------------------- -------------------
2015-01-15 2015-01-19 00:00:00.000 Ad-hoc
2015-01-19 2016-09-23 00:00:00.000 Weekly
2016-09-23 2017-02-20 00:00:00.000 Ad-hoc
2017-02-20 2017-03-13 11:54:39.277 Monthly

(注意我已经根据评论调整了最后一行)。

这是通过为每一查找具有不同Frequency的最早行来实现的这意味着,比如说,一组Ad-hoc相邻的行将使用定位相同的后续行Weekly这就是 CTE/firstGROUP BY正在做的事情。

因此,如果我们随后获取所有这些行并找到其中最早的行,我们就成功地隐藏了中间行的存在——这就是第二行GROUP BY所做的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找具有唯一字段的文档

来自分类Dev

Sails.js复合唯一字段

来自分类Dev

pymongo中的唯一字段

来自分类Dev

Django:具有唯一字段的UpdateView

来自分类Dev

分组依据以显示唯一字段

来自分类Dev

用于唯一字段值的ElasticSearch聚合

来自分类Dev

使用唯一字段更新Laravel模型

来自分类Dev

如何计算文件中的唯一字段?

来自分类Dev

RethinkDB-多个唯一字段?

来自分类Dev

MongoDB 排序顺序和唯一字段

来自分类Dev

LINQ 对多个字段进行分组并将非唯一字段放入列表中

来自分类Dev

python-在一组列表中仅保留唯一字段的最佳方法

来自分类Dev

为MySQL唯一字段生成唯一值

来自分类Dev

在PowerShell中将非唯一值与唯一字段并置

来自分类Dev

列表按第一字段排序,如何在第一字段相同的行上加入第二字段?

来自分类Dev

如何在Rails中使用ruby中的唯一字段来获得不区分大小写的唯一字段?

来自分类Dev

如何选择按不同字段排序的唯一字段?

来自分类Dev

添加一个唯一字段并填写

来自分类Dev

mongo结果与唯一字段不一致

来自分类Dev

唯一与非唯一聚集索引可加快对非唯一字段的搜索

来自分类Dev

唯一与非唯一聚集索引可加快对非唯一字段的搜索

来自分类Dev

Django为什么要在唯一字段上显式创建索引

来自分类Dev

在Laravel中使用Http \ Request更新唯一字段时如何执行验证

来自分类Dev

Laravel验证服务具有唯一字段

来自分类Dev

如何将具有唯一字段的对象添加到Set

来自分类Dev

Django查询具有唯一字段的项目

来自分类Dev

通过多个唯一字段查找Rails

来自分类Dev

CakePHP 3-唯一字段的应用规则

来自分类Dev

获取具有唯一字段的最新记录

Related 相关文章

热门标签

归档