【发布时间】:2020-01-30 14:44:29
【问题描述】:
我在 Postgresql 中有两个表:
表a:
name | power
:--- | :----
a1 | 12
a2 | 6
a3 | 3
a4 | 1
表b:
name | power
:--- | :----
b1 | 11
b2 | 4
我想有效地(我需要以 10Hz 执行此查询)找到最接近的匹配功率,即结果应该是
name | power | name | power
:--- | :---- | :--- | :----
a1 | 12 | b1 | 11
a3 | 3 | b2 | 4
我已经使用循环实现了它,但是,如果有更有效的方法来找到解决方案,我会很高兴。
非常感谢
【问题讨论】:
-
请描述您的“阵列”。这些是元组数组吗?二维数组?具有多个二元素数组的列?表结构会有所帮助。
-
两个表都很简单(b和a结构一样):
CREATE TABLE a ( name text, power real ); -
一个 b 值是否可以匹配两个 a 值(例如,如果有一对 (a5, 10),则 (b1, 11) 对将同时匹配)
-
是的,可以这样。然后,以下解决方案之一就可以了:只映射一个,或同时映射两者。
标签: arrays postgresql loops sorting find