Эта проблема возникает всякий раз, когда вы превышаете размер строки (varchar) 65535 байт на Redshift, который является максимальным. Ссылка - AWS ДОКУМЕНТАЦИЯ Создание еще одного слоя над ним при использовании SUBSTRING()
сделает необходимое.
Предположим, у меня есть эти данные -
Итак, теперь, когда я запускаю запрос -
select distinct listagg(hint,',') WITHIN group (order by id desc) over (PARTITION by Name ) as all_hints from dev.gp_test20200619;
, я получаю следующий результат -
т.е. длина -> 20
Теперь предположим, что я хочу, чтобы длина не превышала 16, тогда -
QUERY -
SELECT SUBSTRING(all_hints,1,16), length(all_hints) as orignal_length, length(SUBSTRING(all_hints,1,16)) as new_length_using_substring
FROM (SELECT DISTINCT listagg(hint,',') WITHIN GROUP(ORDER BY id DESC) OVER (PARTITION BY Name) AS all_hints
FROM dev.gp_test20200619)
Ваш результат -