Postgres - 两个查询的减法
Postgres - Subtraction of two queries
我想做这样的减法:
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
我想做这样的减法:
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