我在PostgreSQL数据库中有两个表,其中包含两个表,它们仅在命名空间上有所不同:Japan.Revenue
和Korea.Revenue
。我想查询它们,因为只有一个表。
例如
SELECT productgroup, sum(transactionvalue)
FROM ???? (Something that combines the two tables)
Group by productgroup where ....
我该怎么做?
我需要韩国和日本的结果结合起来。到目前为止,我确实发送了 2 个查询并将结果合并到应用程序中。一定有更好的方法
您需要完全限定表名并合并结果。 可以做的不仅仅是对内部查询的简单选择,但由于您正在执行聚合,因此需要在外部执行。 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。
试试这个:
SELECT productgroup, sum(transactionvalue)
FROM korea
Group by productgroup
union all
SELECT productgroup, sum(transactionvalue)
FROM japon
Group by productgroup
当您具有相同类型的相同列时,最好的组合方法是并集 您也可以在选择之外按它分组。