В стандартном SQL это будет выглядеть так:
select b, c, listagg(a, ',') within group (order by a)
from t
group by b, c;
Не все базы данных поддерживают listagg()
, но в большинстве есть метод конкатенации строк.
В Hive вы будет использовать collect_list()
или collect_set()
:
select b, c, collect_list(a, ',')
from t
group by b, c;
Вы можете преобразовать массив обратно в строку, но я рекомендую сохранить его как массив.