我有一张桌子,在一个理想的世界中,每个政策应该只返回1行。对于作为向上销售的一部分出售的商品。
我希望按照每个' PolRef @'基本上是'是'应该取代'否'它应该存在于列中吗。
B@ PolRef@ Uk Eu Date Ep500 Ep700 Ep3000 Keycare Wind Ep350 Ep250 Legal Totaladdon Finance_yn
2 ROGX17PC01 Yes No 2017-07-31 00:00:00.000 No No No No No NULL NULL NULL 62.00 Yes
2 ROGX17PC01 No No 2017-07-31 00:00:00.000 No No No No No NULL NULL Yes 32.00 Yes
这是一个例子,我知道我可以做一个GROUP BY来对PolRef @进行分组,然后对TotalAddon进行总结,但是我怎么能拥有它以便如果'是'存在于该列的“PolRef @”中。这表明了它。
基本上,上面的结果应该是
B@ PolRef@ Agent Uk Eu Date Ep500 Ep700 Ep3000 Keycare Wind Ep350 Ep250 Legal Totaladdon Finance_yn
2 ROGX17PC01 NULL Yes No 2017-07-31 00:00:00.000 No No No No No NULL NULL Yes 94.00 Yes
答案 0 :(得分:0)
这是优先级查询。一种方法使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by PolRef@
order by uk desc -- 'Yes' comes before 'No'
) as seqnum
from t
) t
where seqnum = 1;