2015-05-25 117 views
0

我有以下一组信息的表格:总结一下元组

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成本应该是cost: 1.75。任何帮助表示赞赏。谢谢。

回答

0

这是做你想做的吗?

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_id(“i-1234”)可以重复多次,那么这不是正确的查询。

编辑:

如果r_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, 
+0

是的,'r_id'可以重复多次。感谢您的帮助。这非常有用。 – ari

+0

@ari。 。 。请更新您的问题更好的示例数据。 –