Группировка внутри LISTAAG - PullRequest
0 голосов
/ 23 мая 2019

Наша база данных postgresql и использовали функцию array_agg в одном запросе sql, чтобы получить следующий вывод, подобный

{"Basic:1","Basic:1","Basic:1","Basic:1","Basic:1","Basic:1","Paying:1","Paying:1","Paying:1"} 

Мы перешли на красное смещение ииспользуется LISTAGG функция.Хорошо, если данных меньше и данные хранятся как

Basic:1,Basic:1,Basic:1,Basic:1,Basic:1,Basic:1,Paying:1,Paying:1,Paying:1

, но мы получаем следующую ошибку, если набор данных большой.-

Invalid operation: Result size exceeds LISTAGG limit

Дело в том, что нам нужно достичь конечного результата как Basic:6,Paying:3.Есть ли альтернатива LISTAGG?

1 Ответ

0 голосов
/ 23 мая 2019

Насколько велика ваша колонка, которую вы использовали в LISTAGG? LISTAGG может обрабатывать только до 64 тыс. Символов.

Документация имеет это:

VARCHAR (MAX). Если результирующий набор больше максимального VARCHAR size (64K - 1 или 65535), затем LISTAGG возвращает следующую ошибку:

Invalid operation: Result size exceeds LISTAGG limit**

https://docs.amazonaws.cn/en_us/redshift/latest/dg/r_WF_LISTAGG.html

...