使用posexplode爆炸数组以获取索引和值,按值排序,收集索引数组:
select id, collect_list(pos) as result_arrayfrom(select s.id, a.pos, a.v from your_table s lateral view posexplode(s.value_array) a as pos, vdistribute by s.id sort by a.v DESC --sort by value)sgroup by id;
经过测试,结果:
id result_array1 [1,0,3,2]2 [2,1,3,0]



