将两个表查询为一个来自不同命名空间的表



我在PostgreSQL数据库中有两个表,其中包含两个表,它们仅在命名空间上有所不同:Japan.RevenueKorea.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

当您具有相同类型的相同列时,最好的组合方法是并集 您也可以在选择之外按它分组。

最新更新