Postgres的 - 两个查询
问题描述:
中扣除,我要让这样的减法:Postgres的 - 两个查询
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_Centroid(ST_Collect(column1)))
只有一个行ST_Y(ST_Transform(column1,4326))
具有多行。我想通过列减去多行,并查看每个多行的结果。有了这个查询,我得到:
ERROR: more than one row returned by a subquery used as an expression
任何帮助吗?
答
以下查询将针对多行结果集加入一行结果集,并允许对它们进行比较。
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}'? – MatBailie
与'SELECT(SELECT 1 UNION SELECT 2);'相同。你不能用SQL来做这件事! –
@MikeT - “你”不能使用Op使用的语法,正确。但是,根据操作系统的实际***功能***要求,SQL最有可能*能够使用正确的语法对其进行全面填充。 – MatBailie