我正在尝试总结一个数据集并获取每个组的最小和最大日期。但是,如果存在差距,则组可以存在多次。下面是样本数据:具有多个Group BY列的SQL Server Group行
CREATE TABLE temp (
id int,
FIRSTNAME nvarchar(50),
LASTNAME nvarchar(50),
STARTDATE datetime2(7),
ENDDATE datetime2(7)
)
INSERT into temp values(1,'JOHN','SMITH','2013-04-02','2013-05-31')
INSERT into temp values(2,'JOHN','SMITH','2013-05-31','2013-10-31')
INSERT into temp values(3,'JANE','DOE','2013-10-31','2016-07-19')
INSERT into temp values(4,'JANE','DOE','2016-07-19','2016-08-11')
INSERT into temp values(5,'JOHN','SMITH','2016-08-11','2017-02-01')
INSERT into temp values(6,'JOHN','SMITH','2017-02-01','9999-12-31')
我期待汇总数据如下:
JOHN SMITH 2013-04-02 2013-10-31
JANE DOE 2013-10-31 2016-08-11
JOHN SMITH 2016-08-11 9999-12-31
一个“GROUP BY”,将二者结合起来约翰·史密斯与不正确的最小和最大日期一起记录。
任何帮助表示赞赏。
谢谢。
这是[间隙和岛屿]问题(https://www.simple-talk.com/sql/t-sql-programming/the-sql-of-gaps-and-islands-in-sequences/)问题。他们不是很容易解决,但它是完全可行的。 – JNevill