gpt4 book ai didi

mysql - 尝试从代表网格的表查询中获取 "nearest"结果

转载 作者:行者123 更新时间:2023-11-29 13:17:24 27 4
gpt4 key购买 nike

我有一个表,存储带有 x、y 和高程的网格。我有一些已知的高程和许多空(NULL)高程。我正在尝试构建一个对缺失值进行插值(简单线性插值)的查询,但我一开始就陷入困境:我什至无法编写一个获取最接近的非空值的查询。我想做的是使用引用外部查询的子查询,但这不起作用(“未知列”错误)。

这是我尝试过的,但这不起作用

SELECT tg.*, tx.elevation FROM `temp_grid` tg
INNER JOIN
(
SELECT xGrid, yGrid, elevation
FROM temp_grid
WHERE elevation IS NOT NULL
AND yGrid > tg.yGrid
ORDER BY yGrid
LIMIT 1
) ti ON tg.xGrid=ti.xGrid
WHERE tg.elevation IS NULL

我一直在绞尽脑汁试图思考如何通过连接和分组来做到这一点,但想不出任何东西......有什么想法吗?

最佳答案

您可以将其作为 select 子句中的子查询来执行:

SELECT tg.*,
(SELECT elevation
FROM temp_grid tg2
WHERE elevation IS NOT NULL AND
tg2.yGrid > tg.yGrid
ORDER BY tg2.yGrid
LIMIT 1
) as elevation
FROM `temp_grid` tg
WHERE tg.elevation IS NULL;

对于问题的其余部分,您只需更改子查询中的 whereorder by 即可计算两点之间的距离(沿您所在的方向)感兴趣。

关于mysql - 尝试从代表网格的表查询中获取 "nearest"结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com