Sql 对包含指定ID的元组求和

Sql 对包含指定ID的元组求和,sql,Sql,我有一个包含以下信息集的表格: r-Id v-id cost --------------------------- i-1234 v-1234 0.5 v-1234 - 1.25 对于这样的场景,我不能完全用手指去查询:如果一个r-Id由一个v-Id组成,那么将相应的v-Id成本加总到r-Id 所以i-1234成本应该是成本:1.75。感谢您的帮助。谢谢 这是你想要的吗 select t.r_id, max(t.cost

我有一个包含以下信息集的表格:

r-Id         v-id      cost
---------------------------
i-1234    v-1234       0.5
v-1234       -         1.25
对于这样的场景,我不能完全用手指去查询:如果一个
r-Id
由一个
v-Id
组成,那么将相应的
v-Id
成本加总到
r-Id


所以
i-1234
成本应该是
成本:1.75
。感谢您的帮助。谢谢

这是你想要的吗

select t.r_id, max(t.cost) + coalesce(sum(t2.cost), 0)
from table t left join
     table t2
     on t.v_id = t2.r_id
group by t.r_id;
这将为提供的数据生成所需的输出。如果
r\u id
(“i-1234”)可以重复多次,那么这不是正确的查询

编辑:

如果
r\u id
可能出现多次,则需要通过它进行预聚合:

select t.r_id, sumcost + coalesce(sum(t2.cost), 0)
from (select t.r_id, sum(t.cost) as sumcost
      from table t
      group by t.r_id
     ) t left join
     table t2
     on t.v_id = t2.r_id
group by t.r_id, sumcost,

是的,
r\u id
可以重复多次。谢谢你的帮助。这是非常有用的。