我在PostgreSQL数据库中有两个表,其中包含两个仅在名称空间上不同的表:Japan.Revenue
和Korea.Revenue
。我只想查询一张表。
例如
SELECT productgroup, sum(transactionvalue)
FROM ???? (Something that combines the two tables)
Group by productgroup where ....
我该怎么做?
我需要将韩国和日本的结果结合起来。到目前为止,我确实发送了2个查询并将结果合并到应用程序中。必须有更好的方法
答案 0 :(得分:3)
您需要完全限定表名并合并结果。 对于内部查询,可以做的不仅仅是简单的选择,但是由于要进行聚合,因此需要在外部进行。 https://www.postgresql.org/docs/current/static/queries-union.html
SELECT productgroup, sum(transactionvalue)
FROM (
SELECT * FROM Japan.Revenue
UNION ALL
SELECT * FROM Kora.Revenue
) sub
GROUP BY productgroup
WHERE ....
;
编辑:现在使用下面注释中的UNION ALL。
答案 1 :(得分:2)
尝试一下:
SELECT productgroup, sum(transactionvalue)
FROM korea
Group by productgroup
union all
SELECT productgroup, sum(transactionvalue)
FROM japon
Group by productgroup
当您具有相同类型的相同列时,最好的合并方式是并集 您也可以在select之外对其进行分组。