select uid,
split(regexp_replace(concat_ws('\,',sort_array(collect_list(time_vid))),'\\d+_',''),',') as vids
from(
select uid,vid,time,concat_ws('_',cast(time as string),cast(vid as string)) as time_vid from table
)t1 group by uid
select uid,
split(regexp_replace(concat_ws('\,',sort_array(collect_list(time_vid))),'\\d+_',''),',') as vids
from(
select uid,vid,time,concat_ws('_',cast(time as string),cast(vid as string)) as time_vid from table
)t1 group by uid