【发布时间】:2019-03-22 06:32:11
【问题描述】:
假设我有一个包含两列 X1 和 X2 的表,其中 X1 总是小于 X2。每行构成一些范围(X1,X2)。有可能几行的 X1/X2 范围重叠以形成更大的范围(X1n,X2m)。
有没有办法使用标准 SQL 进行查询以找到所有这些范围?
例如,表格可能如下所示:
|x1 |x2 |
-----------------------
|1 |3 |
|2 |4 |
|3 |5 |
|7 |9 |
|8 |27 |
|100 |105 |
-----------------------
预期的输出是:
((1, 5), (7, 27), (100, 105))
感谢我们在正确方向上的任何帮助。
我正在使用 sqlite 3.11.0。
【问题讨论】:
-
您使用的是什么版本的 SQLite?这可以通过窗口函数实现,而没有窗口函数则更难。
-
您能否包含一些示例行(以易于导入表格的格式,不是作为图像或其他格式)和基于该数据的所需结果?
-
@GordonLinoff,我正在使用 sqlite3,我已将该信息添加到问题中。
-
@PhillipMartin。 . .唉,你的版本太旧了,不能真正有用。您需要 3.26 或更高版本。
-
@GordonLinoff,我没有嫁给那个版本。 3.26 或更高版本是否简单?