【发布时间】:2014-01-21 23:40:29
【问题描述】:
我有两个表{示例数据 - 表 A 有几百行,表 B 有几千行}。我想用 B1 列和 A2 列之间的最小绝对差填充 B2 列 - 对应于 A1 列。 ...或...设置 B2 = A1 其中 abs(B1-A2) 最接近零。
所以在我的第一行下方的表格中 B1 - A2 = 1.6 - 1.4 = 0.2,这是最小的差异,对应于 A1 中的 0(以及接下来两行的 1 和 2,尽管这种巧合源于我缺乏创造力而不是实际的表格结构)。
A表
A1 A2
0 1.4
1 2.6
2 4.3
表 B
B1 B2
1.6 []
2.7 []
4.4 []
或 B2 = A1,其中 abs(B1-A2) 最接近于零。我不知道如何使用 SQLite 来定义它。我已经通过 SO 进行了搜索,但没有发现这个问题的措辞足够接近我微薄的 SQLite 技能来实现跳跃。我见过的最近的是SQLite - getting closest value,但这是一个表,只是一个选择而不是更新。
我知道大多数人希望我提供一个答案作为起点,但他们要么完全失败,要么给我一个关于尝试使用聚合函数 (min) 的错误,所以我认为这对问题没有帮助 (但如果你很好奇,我很遗憾在这上面花了 2 个小时)。所以我解决了这个问题:SQLite 有没有办法执行这个?非常感谢任何帮助!
B2 = A1 其中 abs(B1-A2) 最接近于零。实际上这是一个 SQLite vlookup (Excel) 风格的问题。
【问题讨论】:
标签: sqlite join where-clause min vlookup