在SQL Server 2005中我有一个表的数据,看起来是这样的:SQL分组周围间隙
WTN------------Date
555-111-1212 2009-01-01
555-111-1212 2009-01-02
555-111-1212 2009-01-03
555-111-1212 2009-01-15
555-111-1212 2009-01-16
212-999-5555 2009-01-01
212-999-5555 2009-01-10
212-999-5555 2009-01-11
从这个我想提取WTN,闵(日期),马克斯(时间)的扭曲是我想也打破每当有日期的差距,所以从上面的数据,我的结果应该是这样的:
WTN------------ MinDate---- MaxDate
555-111-1212 2009-01-01 2009-01-03
555-111-1212 2009-01-15 2009-01-16
212-999-5555 2009-01-01 2009-01-01
212-999-5555 2009-01-10 2009-01-11
- 我该怎么办次在SQL Select/Group By中?
- 这可以在没有表格或列表的情况下完成,可以枚举我想在这些日期中确定间隔的值吗?
为什么使用临时表的东西,我可以在内嵌视图(或CTE)呢?保存必须定义表和INSERT语句...... – 2009-10-19 18:43:25
但是数字表对于许多事情非常有用,您不需要重复定义它。在我看来,这更像永久性表格。 – HLGEM 2009-10-19 18:49:38
哦,不!定义一个表格?填充它?您只定义表并填充一次。现在,您可以引用该表,而不用担心在需要序列的每个模块中都有用于此类CTE的代码。从理论上讲,它比在运行时推导更有效率,因为正如我之前提到的,它在大多数情况下都会记忆,并且它也应该被正确地编入索引。我在理论上说,因为在达到某个数字/日期的某个阈值之前,您不会注意到性能差异的很大一部分。 – 2009-10-19 18:55:25