【发布时间】:2019-01-30 09:34:52
【问题描述】:
如何通过v_id 获得w_cost 的最大值,并且最终结果集应包括av_id。
s_id sg_id r_cost w_cost av_id v_id
123 100 0.50 1.00 1 333
123 105 0.75 0.50 2 333
123 330 2.00 Null 3 888
如果w_cost 为NULL,则应采用r_cost。最终结果应该是:
s_id v_id w_cost av_id
123 333 1.00 1
123 888 2.00 3
基本查询是
SELECT
t.s_id,
sv.v_id,
sv.w_cost,
CASE
WHEN sv.w_cost IS NULL THEN
sv.r_cost::numeric
ELSE sv.w_cost::numeric
END AS cost
FROM test t
INNER JOIN stra_ven sv tmad ON
t.s_id = sv.s_id
GROUP BY t.s_id,sv.v_id,sv.w_cost;
【问题讨论】:
标签: sql postgresql greatest-n-per-group