我需要以下输出的帮助。真正的表集更大,但为了更好地理解,我在这里简化了它。输入表:
id level 1 L1 2 L1 3 L1 3 L2 4 L2
期望结果:
ID Level 1 L1 2 L1 3 L2 4 L2
基本上没有了 L1 & L2 ,如果给定的id存在,查询应该选择l2并过滤掉 L1
L1
L2
fjaof16o1#
这种情况可以按优先顺序排列 order by 的 row_number 功能。
order by
row_number
select id,level from ( select id,level,row_number() over(partition by id order by case when level='L2' then 1 when level='L1' then 2 else 3 end) as rnum from tbl ) t where rnum=1
1条答案
按热度按时间fjaof16o1#
这种情况可以按优先顺序排列
order by
的row_number
功能。