我有一张包含以下信息的表格:
r-Id v-id cost
---------------------------
i-1234 v-1234 0.5
v-1234 - 1.25
我无法完全按照这样的方式查询:如果r-Id
由v-id
组成,请将相应的v-id
费用汇总到{{} 1}}。
因此r-id
费用应为i-1234
。任何帮助表示赞赏。谢谢。
答案 0 :(得分: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,