gpt4 book ai didi

postgresql - 在表达式中使用同一表中的两个不同行

转载 作者:行者123 更新时间:2023-11-29 12:33:57 25 4
gpt4 key购买 nike

我正在使用 PostgreSQL + PostGIS。

在表中,我在同一个表的同一列中的不同行中有一个点和线几何图形。要获取我运行的行:

SELECT the_geom
FROM filedata
WHERE id=3

如果我想拿点我跑:

SELECT the_geom
FROM filedata
WHERE id=4

我想把点和线放在一起,就像它们在这个 WITH 表达式中显示的那样,但是改为对表使用真正的查询:

WITH data AS (
SELECT 'LINESTRING (50 40, 40 60, 50 90, 30 140)'::geometry AS road,
'POINT (60 110)'::geometry AS poi)

SELECT ST_AsText(
ST_Line_Interpolate_Point(road, ST_Line_Locate_Point(road, poi))) AS projected_poi

FROM data;

在此示例中,您会看到数据来自手动创建的 WITH 表达式。我想从我的 filedata 表中获取它。我的问题是我不知道如何同时处理来自一个表的两个不同行的数据。

最佳答案

一种可能的方式:
从不同行检索另一个值的子查询。

SELECT ST_AsText(
ST_Line_Interpolate_Point(
the_geom
,ST_Line_Locate_Point(
the_geom
,(SELECT the_geom FROM filedata WHERE id = 4)
)
)
) AS projected_poi
FROM filedata
WHERE id = 3;

关于postgresql - 在表达式中使用同一表中的两个不同行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890851/

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