SQL连接1行多行之和

时间:2020-11-02 09:12:59

标签: postgresql

第一张桌子:

A               id    
       1        200
2366.533        200
3408.467        200

第二张桌子:

    C   D       E       F   id  
    XRP 5515    5776    0   200

我的查询:

select * from table1 
join table2 on table1.id = table2.id

在两个表之间使用经典的JOIN语句运行代码后,我得到以下输出:

A               C   D       E       F 
       1        XRP 5515    5776    0
2366.533        XRP 5515    5776    0
3408.467        XRP 5515    5776    0

第一列来自表1,接下来的4列来自表2。 如您所见,右侧的列是相同的。仅仅是因为实际上在JOIN期间仅复制了1个原始文件。

我想在加入时对A列求和,并且仅保留Table2中的1行,在这种情况下,输出如下。

      A         C   D       E       F 
      5776      XRP 5515    5776    0

2 个答案:

答案 0 :(得分:0)

我将加入第二个表上不同的子查询:

select t1.A, t2.C, t2.D, t2.E, t2.F
from table1 t1
inner join (select distinct C, D, E, F from table2) t2
    on t1.id = t2.id;

答案 1 :(得分:0)

我想我可以找出答案:

select t2.C, t2.D, t2.E, t2.F, sum(t1) 
from (
  select * from table1 t1
  join table2 t2 on t1.id = t2.id
  ) sub
group by 1,2,3,4
相关问题