如何将第一个查询的输出与第二个查询的输出相加

时间:2018-12-14 10:39:19

标签: postgresql

我有两个不同的查询。我可以在第一个查询中添加第二个查询的输出(明智的列而不是行)吗?两者都有不同的列和不同的输出。

在我的情况下,联合将不起作用,因为两个查询都给出了不同数量的输出。

例如-

Select count(BATCH), ID from tableA group by ID;

Count(1), ID
2,       123
3,       234

Select Count(STATEMENT), ID from tableB group by ID;

Count(1),  ID
4,         123
5,         234

我想要输出为

Count(1) Count (1) ID
2         3        123
3         4        234

1 个答案:

答案 0 :(得分:1)

您可以加入两个查询:

select table_a.count_a, 
       table_b.count_b, 
       table_a.id
from ( 
    Select count(BATCH) as count_a, 
           ID 
    from tableA 
    group by ID
) as table_a
  join (
    Select Count(STATEMENT) as count_b, ID 
    from tableB 
    group by ID;
  ) as table_b on b.id = a.id;

请注意,如果一个查询返回的ID在另一个查询中不存在,则上面的查询将排除这些行。如果发生这种情况,请使用full join代替join