Postgresql Postgres-两个查询的减法
我想做一个这样的减法:Postgresql Postgres-两个查询的减法,postgresql,postgis,Postgresql,Postgis,我想做一个这样的减法: SELECT (SELECT ST_Y(ST_Centroid(ST_Collect(column1))) AS distance_km FROM table1) - (SELECT ST_Y(ST_Transform(column1,4326)) AS distance_km FROM table1) AS Difference 但是ST_Y(ST_形心(ST_Collect(column1)))只有一行,而ST_Y(ST_
SELECT
(SELECT ST_Y(ST_Centroid(ST_Collect(column1))) AS distance_km
FROM table1) -
(SELECT ST_Y(ST_Transform(column1,4326)) AS distance_km
FROM table1) AS Difference
但是ST_Y(ST_形心(ST_Collect(column1)))
只有一行,而ST_Y(ST_变换(column14326))
有多行。我想用列减去多行,然后查看每一行的结果。通过这个查询,我得到:
错误:用作表达式的子查询返回多行
有什么帮助吗?以下查询将一行结果集与多行结果集合并,并允许对它们进行比较
SELECT
a.*,
b.*,
a.distance_km - b.distance_kn AS difference
FROM
(
SELECT ST_Y(ST_Centroid(ST_Collect(column1))) AS distance_km FROM table1
)
a
CROSS JOIN
(
SELECT ST_Y(ST_Transform(column1,4326)) AS distance_km FROM table1
)
b
请举例说明。您是否建议,如果第一次查询的结果为
10
,第二次查询的结果为{1,2,5,7}
,则希望得到{9,8,5,3}
?与SELECT(SELECT 1 UNION SELECT 2)相同代码>。你不能用SQL来做这件事@MikeT-“你”不能使用Op使用的语法,对吗。但是,根据Op的实际功能需求,SQL很可能能够用正确的语法完全填充它。@MatBailie是的,就是这样@PRV-子查询和交叉连接是ANSI-SQL。所以,是的,它在PostGreSQL中起作用。@MatBailie:这个名字要么拼写为PostGreSQL,要么就是Postgres。千万不要用大写字母G