在配置单元中进行查询,为col1中的相同值选取col2中的第二个值

n9vozmp4  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(250)

我需要以下输出的帮助。真正的表集更大,但为了更好地理解,我在这里简化了它。
输入表:

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

fjaof16o

fjaof16o1#

这种情况可以按优先顺序排列 order byrow_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

相关问题