首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带不连续期间的组孤岛查询

带不连续期间的组孤岛查询
EN

Stack Overflow用户
提问于 2017-02-28 23:39:43
回答 2查看 63关注 0票数 1

我有一个表格,如下所示,

代码语言:javascript
复制
create table #ph (symbol char(2), FisrtDate date, LastDate, value1 int, value2 int, value3 int)
insert into #ph select AA, '20120101', '20130201',  1, 1000, 200
insert into #ph select AA, '20130202', '20150101',  2, 300,  500
insert into #ph select AA, '20150102', '20170101',  2, 300 , 500
insert into #ph select AB, '20120104', '20150101',  1, 200, 500
insert into #ph select AB, '20150104', '20170101',  1, 200, 500
insert into #ph select AB, '20170106', '20170201',  1, 300, 500

我想要像这样的输出,

代码语言:javascript
复制
Symbol | date_from| date_to  | value1 | value2 | value3
  AA   | 20120101 | 20130201 | 1      | 1000   | 200
  AA   | 20130202 | 20170101 | 1      | 300    | 500
  AB   | 20120104 | 20170101 | 1      | 200    | 500
  AB   | 20120106 | 20170201 | 1      | 300    | 500

我在寻找群岛问题,但我很困惑。

EN

回答 2

Stack Overflow用户

发布于 2017-02-28 23:47:53

看看你的数据,如果我没理解错的话,你想要显示没有改变value1,value2和value3的行的最小,最大日期?

如果是这样,那么简单的GROUP BY应该这样做:

代码语言:javascript
复制
SELECT symbol, MIN(FirstDate), MAX(LastDate), value1, value2, value3
  FROM #ph
 GROUP BY symbol, value1, value2, value3
票数 4
EN

Stack Overflow用户

发布于 2018-08-12 11:50:51

根据需要使用Min和Max聚合函数。然后,这些聚合函数将构成我们在查询中分组的基础。

代码语言:javascript
复制
SELECT symbol, MIN(FirstDate) as [date_from], MAX(LastDate) as [date_to], value1, value2, value3
FROM #ph
GROUP BY symbol, value1, value2, value3
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42512940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档