- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要帮助连接不同距离数字的 KM 范围内的两个表。范围不同,我需要将功能 1 与功能 2 和 3 结合使用。
所以我需要一个范围连接,但不知道如何解决这个问题。特征 2 和 3 可能存在于特征 1 的 2 个区域中,那么特征 1 应该是“1”。但是我没有这样做的好主意。
所以 NR 1 从 0.0 到 0.1 在 feature1 1 中,f2=A 和 f3=X但是从4.2到6.0的NR 3在feature1 2和1中,所以feature1应该是1
NR fromKM toKM feature1
1 0 1.4 1
1 1.4 3.8 2
1 3.8 7.2 1
1 7.2 36.7 2
2 0 14.6 1
3 0 5.2 2
3 5.2 10.6 1
和
NR fromKM toKM featrure2 featrure3
1 0 0.1 A X
1 0.1 0.3 B Y
1 0.5 1.3 C X
1 1.4 2.0 A X
1 4.0 7.2 C X
2 0.1 0.4 A Y
2 0.4 1.6 C X
3 0.1 4.2 B X
3 4.2 6.0 B Y
3 6.0 10.2 A Y
所以输出应该是
NR fromKM toKM feature1 featrure2 featrure3
1 0 0.1 1 A X
1 0.1 0.3 1 B Y
1 0.5 1.3 1 C X
1 1.4 2.0 2 A X
1 4.0 7.2 1 C X
2 0.1 0.4 1 A Y
2 0.4 1.6 1 C X
3 0.1 4.2 2 B X
3 4.2 6.0 1 B Y
3 6.0 10.2 1 A Y
最佳答案
您需要使用一个等式(对于 NR
)和两个不等式(对于 fromKM 和 toKM
)来JOIN
。您通常加入等式,但这实际上不是必需的,您可以加入返回 bool 结果的任何表达式。
假设您的表名为 t1
和 t2
,您将使用:
SELECT
t1.NR, t2.fromKM, t2.toKM, feature1, feature2, feature3
FROM
t1
JOIN t2
ON t2.NR = t1.NR AND t2.fromKM >= t1.fromKM AND t2.toKM <= t1.toKM
ORDER BY
t1.NR, t2.fromKM
...你会得到:
nr | fromkm | tokm | feature1 | feature2 | feature3-: | -----: | ---: | -------: | :------- | :------- 1 | 0.0 | 0.1 | 1 | A | X 1 | 0.1 | 0.3 | 1 | B | Y 1 | 0.5 | 1.3 | 1 | C | X 1 | 1.4 | 2.0 | 2 | A | X 1 | 4.0 | 7.2 | 1 | C | X 2 | 0.1 | 0.4 | 1 | A | Y 2 | 0.4 | 1.6 | 1 | C | X 3 | 0.1 | 4.2 | 2 | B | X 3 | 6.0 | 10.2 | 1 | A | Y
Which is your desired output (except for one C
, which I guess was your smallish mistake).
You can check the setup and test it at dbfiddle here
If you would like maximum performance, you can use some specific PostgreSQL features, such as
numranges
data type, and its "overlaps" (&&
) operator, or the "contains range" (@>
) one.GIST
index on the numrangesThat would mean doing:
CREATE INDEX idx_t1 ON t1 USING gist (NR, (numrange(fromKM, toKM, '[]'))) ;
CREATE INDEX idx_t2 ON t2 USING gist (NR, (numrange(fromKM, toKM, '[]'))) ;
并通过以下方式查询:
SELECT
t1.NR, t2.fromKM, t2.toKM, feature1, feature2, feature3
FROM
t1
JOIN t2
ON t2.NR = t1.NR AND numrange(t1.fromkm, t1.tokm, '[]') && numrange(t2.fromkm, t2.tokm, '[]')
ORDER BY
t1.NR, t2.fromKM ;
当您有大表时,这很有意义。您可以在 dbfiddle here 查看第二个专门选项
关于sql - Postgresql 加入 2 个具有 km 范围的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45103740/
这是 mysql 数据库中的纬度和经度示例 ID | Lat | Lon 1 | 3.1412 | 101.6865 2 | 1.2897 | 103.8501 下面的公式计算两个 Lat(
我正在使用 survival 包进行 Kaplan Meier 分析,需要在 Kaplan Meier 图中显示特定时间段内幸存者的具体数量。 为了更好的可追溯性,我们使用示例包 KMsurv: li
使用 scipy.KDTree 进行一些快速的最近邻搜索。我正在使用 KDTree.query_ball_point(pnt, r=some_distance) 进行搜索。 因为我的点是纬度,所以要搜
当我使用 Maven 部署 openkm 应用程序时,我遇到了这个问题: [INFO] BUILD FAILURE [INFO] -----------------------------------
我正在尝试编写一个非常简单的程序,它以公里为单位打印到任何行星的当前距离。我正在使用天域。这是我的火星代码: from skyfield.api import earth, mars, now ra,
我用小数点得到了经纬度的点。该点以圆为中心,圆的半径为x公里。如何找到圆圈内的所有经纬度? 最佳答案 可能最简单的答案是使用毕达哥拉斯。 你得到一个点 (x,y),它是半径为 r 的圆的中心。 '如何
在我的健康应用程序中显示距离为 0.1 公里,但在我的应用程序中它给出的值为 0.106。我怎样才能把它改成十进制?这是我用来获取当前统计信息的代码: pedometer.queryPedometer
使用地理工具是否可以在定义的距离内从一条线(坐标[])生成多边形?例如。 (100,100)、(101,100)、(102,100),距离 1 公里。因此,它从每个点生成一个圆并成为某物。像: ---
我的数据库有各种兴趣点。我希望用户根据他们的位置看到他们。还有3个按钮,显示2km/5km/15km半径内的兴趣点。我无法对这些半径实现放大功能。所以我正在寻找缩放系数(从 2 到 21)和物理距离(
问候。 我看过一些关于这个主题的帖子和答案,但我认为给出的结果可能不太准确。 假设我在 MySQL 空间表中有具有不同经度和纬度点的行。我只想用一个简单的 SELECT 查询来检索它们之间的距离。我尝
定义: O(kM(n)):- modular exponentiation 的计算复杂度 其中k是指数位数,n是位数,M(n)是Newton's division algorithm的计算复杂度。 我
我是 Objective-C 的新手,希望在将 MPS 转换为 KPH 方面得到一些帮助。 以下是我当前的速度字符串。有人可以指出还需要什么吗? speed.text = newLocation.sp
我想实现两个 user-defined literals , _kmh 代表公里每小时,_ms 代表米每秒。我已经有两个结构和运算符“”函数: constexpr KMH operator "" _m
我尝试获取 mariaDB 中两点之间的近似距离。 我使用该 SQL: SELECT st_distance(POINT(50.6333,3.0667),p) from p 它输出的结果例如: 0 1
我需要帮助连接不同距离数字的 KM 范围内的两个表。范围不同,我需要将功能 1 与功能 2 和 3 结合使用。 所以我需要一个范围连接,但不知道如何解决这个问题。特征 2 和 3 可能存在于特征 1
MKMapView 显示以英里 (mi) 为单位的距离刻度(左上角)这有办法以公里 (km) 显示所有距离吗? 最佳答案 回答我自己的问题。 区域设置决定了要使用的度量。 我在我的模拟器上获得了里程,
我给出了带有经度和纬度的坐标列表。 [[-8.610876000000001, 41.14557], [-8.610858, 41.145579000000005], [-8.610903, 41.1
我目前有这个设置,我很想在计算距离时从 Km 更改为 Miles。这是我当前的代码: CLLocation *userloc = [[CLLocation alloc] initWithLatitud
我目前正在开发一个基于 map 的 iPhone 应用程序,希望向用户显示一些信息。对于我的应用程序,具有某种设置是有意义的,用户可以在其中选择英里或公里。是否有一种内置机制(可能类似于字符串本地化)
两周后,我将参加一项人们必须在荷兰乘坐火车旅行最多公里数的比赛。每个人都有 24 小时的旅行时间,旅行距离最长的人获胜。但是,您只能沿着每个“路段”旅行一次。例如,如果您从鹿特丹旅行到阿姆斯特丹,然后
我是一名优秀的程序员,十分优秀!