最近新参加工作,业务中用到,感觉这个场景应该很多地方用到,主要场景是实现,类似于一个数组的字符串,爆炸开,然后对元素分别标上排名,感觉这个很实用,所以就把当时的思路分享给大家,希望对看到的同学有所帮助,帮忙点个赞!!!
1、表名及数据
test
city tpye
beijing aa|aab|cc|ac
shanghai dd|ff|aa
2、要实现的数据
beijing aa 1
beijing aab 2
beijing cc 3
beijing ac 4
shanghai dd 1
shanghai ff 2
shanghai aa 3
3、laterview实现思路
select city,ty
from test
laterview explode split(type,'\\|') tp as tp;
4、在上一步的基础上用row_number() over()实现即可
select
city,
ty,
row_number() over(partition by city)
from
test2;