Улей SQL, как иметь несколько столбцов в group_concat? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть данные, которые выглядят так:

Customer       DUNS         Employees
   A            1              60
   A            2             100
   A            3              15
   A            4              40

Я хочу вот что:

Customer        NEW CONCAT FIELD
   A            1:60, 2:100, 3:15, 4:40

Вот что у меня есть:

Select 
 Customer
,group_concat(cast(DUNS as string)) as DUNS
,group_concat(cast(Employees as string)) as 'Emps'
From MyTable
group by Customer

А вот и результаты:

Customer        DUNS           EMPS
   A            1, 2, 3, 4     60,100,15,40

Мне просто очень трудно объединить их в одном поле.Я нахожу синтаксис MySQL, который выглядит как то, что мне нужно, но он не работает в моем редакторе Cloudera / Impala.

По жизни я не могу найти, где это было сделано раньше, но я уверен,это как где-то.Как мне отредактировать этот запрос, чтобы получить «НОВОЕ КОНКАТНОЕ ПОЛЕ»?

1 Ответ

0 голосов
/ 02 октября 2018

Первое concat 2-е и 3-е поля и используйте collect_list в новом поле

select Customer,collect_list(duns_employees) as duns_employees_list from
(
    select Customer,CONCAT(DUNS,':',Employees) as duns_employees from table
) a
group by Customer; 
...