![]() |
1
1
我认为这可以作为 缺口和岛屿 问题。考虑以下输入数据:(与op的示例数据相同,加上两行)
可以使用以下查询:
得到:
现在你可以识别
输出:
计算字段
输出:
您只需要知道上面那些与指定间隔重叠的记录。 Demo here 有点复杂的用例。 |
![]() |
2
1
也许这就是你要找的?对于这类问题,您需要加入表的两个实例,在本例中,我只是按ID加入下一个记录,这可能不完全正确。为了做得更好,您可以使用诸如row_number之类的窗口函数创建一个新的ID,并根据您的需求条件对表进行排序。
执行第二个标准:
|
![]() |
3
1
我建议使用CTE和窗口函数行编号。通过这个,您可以找到所需的记录。一个例子:
我首先选择所有具有超前和滞后日期的记录,然后对所需时间跨度中包含的内容执行检查。 |
![]() |
4
1
试试这个,不言自明。回答问题的这一部分:
|
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |