Postgresql Sql join 1行与多行之和
第一表:Postgresql Sql join 1行与多行之和,postgresql,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 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,下面四列来自表2。
如您所见,右侧的列是相同的。这仅仅是因为实际上只有1个原始数据在连接过程中被复制
在这种情况下,我希望在加入时对A列求和,并只保留表2中的一行,输出如下
A C D E F
5776 XRP 5515 5776 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;
我想我能想出一个答案:
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
请在两个单独的表中显示原始数据,并包括您当前的SQL查询。@TimBiegeleisen doneSorry,我在第二个表中出错了。实际上已经是一排了。那么就不需要一个不同的语句了?@delalma如果您希望第二个表中的每个
id
总是只有一条记录,那么您当前的查询应该已经足够了。尽管如此,使用我的答案没有什么错,只是没有必要。