сортировать по категории и ограничить 5 для этой таблицы улья

У меня есть таблица улья A, которая имеет следующий столбец

USER ITEM SCORE U1 I1 S1 U1 I2 S2 ................... 

То, что я хочу, это таблица B такого формата

 USER ITEMS #ITEMS is an array U1 [I2,I3,...] # items are sorted according to score in descending and limit 5 

для пользователей менее 5 элементов, просто поместите массив с элементами в порядке убывания.

должно быть примерно так:

 select USER,collect_set(ITEM) from ( select USER, ITEM,row_number () over (partition by USER order by SCORE desc) RN from A ) t1 where RN <= 5 group by USER;