当前位置: 首页 > 面试题库 >

使用SQL查找重叠间隔

雷晋
2023-03-14
问题内容

我想从间隔与查询中指定的间隔相交的表中提取行。假设我有一个简单的ID, DATE_START,DATE_END表和两个查询参数,P_DATE_START并且P_DATE_END,表达查询的最简单方法是什么,以便找到[DATE_START,DATE_END]具有至少一个公共元素的所有行[P_DATE_START, P_DATE_END]

更新:

为了使预期结果更加清晰,请在下面找到输入值和预期结果的列表。列是 DATE_START, DATE_END, P_DATE_START, P_DATE_END, MATCH

16, 17, 15, 18, YES
15, 18, 16, 17, YES
15, 17, 16, 18, YES
16, 18, 15, 17, YES
16, 17, 18, 19, NO
18, 19, 16, 17, NO

问题答案:

更简单:

SELECT id, date_start, date_end 
FROM thetable 
WHERE date_start <= p_date_end 
AND date_end >= p_date_start


 类似资料:
  • 问题内容: 我在数据库中有2个表,这些表具有以下属性: 第二个表是“预订”和“资源”之间的关联实体(即1个预订可以包含许多资源)。属性booking_start和booking_end是带有日期和时间的时间戳。 我是否可以知道如果日期/时间与其他类似resource_id的预订重叠或冲突,我如何能够找到每个resource_id(预订的)? 我以图形方式在纸上涂上答案,以查看它是否可以帮助我形象化

  • 假设我有一个表,它有两列X1和X2,其中X1总是小于X2。每行构成一定的范围(X1,X2)。可能有几行的X1/X2范围重叠,从而产生更大的范围(X1n,X2m)。 有没有办法使用标准SQL查询来查找所有这些范围? 例如,该表可能如下所示: 预期产出将是: 我非常感谢您在正确方向上对我们的帮助。 我正在使用sqlite。

  • 使用新的Pandas IntervalIndex。is\u重叠您可以检查IntervalIndex是否重叠。该函数仅返回整个数据帧的布尔值,但不分组/标识重叠/不重叠的间隔。如何使用高效的熊猫间隔功能实现这一点?

  • 我知道如何检查其中两个圆是否重叠(它们中心之间的距离小于直径)。我可以对每对圆执行此检查,但我想知道是否有更好的算法(比)更快)。 编辑 圆圈的数目通常是100个左右,重叠不会经常发生。

  • 这与寻找重叠的间隔有关。给定一个间隔列表(间隔树),我知道如何做到这一点。我有一个间隔列表。例如, 结果应该是 [2,3], [7,8] 我需要做的是找到所有列表中常见的间隔列表。 我认为这个问题类似于合并列表。问题是我无法应用列表的成对合并。应用此方法可能会导致丢失重叠间隔。因此,我需要将所有列表合并在一起,一次考虑所有列表(而不是成对)。 我可以使用间隔树。将每个列表中的第一个间隔插入间隔树并

  • 问题内容: 假设我在Sql Server 2008中具有下表: 如您所见,该表具有StartDate和EndDate列。我想验证这些列中的数据。间隔不能相互冲突。因此,上面的表是有效的,但是下一个表是无效的,因为第一行的结束日期大于第二行的StartDate。 在这里表示无穷大。 您能帮我写一个脚本进行数据验证吗? [第二项任务] 感谢您的回答。我很复杂。假设我有这样的表: 在这里,我想验证一组中