|
1
1
我认为这可以作为 缺口和岛屿 问题。考虑以下输入数据:(与op的示例数据相同,加上两行)
可以使用以下查询:
得到:
现在你可以识别
输出:
计算字段
输出:
您只需要知道上面那些与指定间隔重叠的记录。 Demo here 有点复杂的用例。 |
|
2
1
也许这就是你要找的?对于这类问题,您需要加入表的两个实例,在本例中,我只是按ID加入下一个记录,这可能不完全正确。为了做得更好,您可以使用诸如row_number之类的窗口函数创建一个新的ID,并根据您的需求条件对表进行排序。
执行第二个标准:
|
|
|
3
1
我建议使用CTE和窗口函数行编号。通过这个,您可以找到所需的记录。一个例子:
我首先选择所有具有超前和滞后日期的记录,然后对所需时间跨度中包含的内容执行检查。 |
|
|
4
1
试试这个,不言自明。回答问题的这一部分:
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |