|
1
7
这种方法使用一个额外的临时表来标识重叠日期的组,然后根据这些组执行快速聚合。
这将返回预期值
|
|
|
2
2
这是2008兼容的。在我看来,CTE确实是连接所有重叠记录的最佳方法。日期重叠逻辑来自这个线程: SO Date Overlap 我添加了更为复杂的额外数据,以确保它按预期工作。
|
|
3
1
这看起来像 Packing Intervals 问题。关于所有的细节以及他推荐什么样的索引来让它高效地工作,请参阅Itzik Ben Gan的帖子。他提出了一个没有递归CTE的解决方案。
样本数据
查询
阅读伊齐克的帖子,了解发生了什么。他那里有很好的插图。简而言之,每个时间戳(开始或结束)都被视为一个事件。每个事件都有一个
结果
|
|
|
4
0
|
|
|
5
0
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |