2015-05-25 75 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。 。 。請更新您的問題更好的示例數據。 –