Как объединить несколько значений строк в одну строку с разделителями, используя Apache Drill - PullRequest
0 голосов
/ 23 января 2019

Как объединить несколько значений строк в одну строку, используя Apache Drill?

Пример :

Введите:

a
b
c

Выход:

a,b,c

В oracle или любой другой базе данных у нас есть функция listagg для достижения этой цели. Как нам этого добиться, используя Apache Drill?

1 Ответ

0 голосов
/ 28 января 2019
  • Drill не имеет функции listagg, поскольку это не стандартная функция SQL ANSI.Но вы можете создать свой собственный UDF для этой цели [1].
  • Также вы можете внести свой вклад в Drill для создания этой функции или аналогичной функции PIVOT.
  • Оператор case вместе с агрегацией может помочь [2].
  • Также рассмотрим аналогичный подход, как в Hive [3]

[1] https://drill.apache.org/docs/adding-custom-functions-to-drill-introduction/
[2] http://mail -архивов.apache.org/mod_mbox/drill-user/201606.mbox/%3CCAAOiHjHyCajBDVerE9fFbgHUyQ+3wYAcX84ZaoUVbAyj0LpjBw@mail.gmail.com%3E
[3] * 1020

...