【发布时间】:2019-04-24 19:23:11
【问题描述】:
在 MsSQL 2014 中,我有一个包含值区间的表
Col1 Col2
1 3
2 4
7 12
7 15
14 21
我需要获取相交区间的最大值和最小值。 预期结果:
Col1 Col2
1 4
7 21
对如何构建查询有想法?
第一行描述了从 1 到 3 的区间。也就是说,区间包含值 1、1.1、1.2、...、2.8、2.9、3。 第二行的区间包含值 2、2.1、2.2 ...3.9、4。 前两行区间的交集包含 2, 2.1,...2.9, 3。
并且在第五行中,区间与从第三行开始的区间没有交集,但第五行和第三行与第四行有交集。
我需要找到这样的间隔并获得它们的最小值和最大值。我知道如何使用游标来执行此操作,但我可以使用 SQL 查询来执行此操作吗?
【问题讨论】:
-
你能详细说明“相交”这个词吗?
-
相交区间是什么意思?因为两列没有共同的元素。再解释一下你的逻辑
-
“相交区间” - 您的预期结果显示仅个至少有一个相交的区间。这是一个要求,还是合并相交间隔时的最大间隔问题?
-
另外,既然这看起来像“家庭作业”,你有什么尝试?
-
问问自己:两个区间“相交”所需的条件是什么?
标签: sql sql-server intervals