Свертывание строк из одного столбца в одну ячейку в зависимости от других столбцов - PullRequest
0 голосов
/ 19 декабря 2018

В моих данных есть столбец (loc) со строковыми значениями, которые я хотел бы свернуть в одну ячейку / строку для каждой комбинации vso / типа.Это то, что у меня сейчас есть:

SELECT vso, type, mp, loc, qty
FROM main

vso type mp   loc      qty
D13  S   UK   CW1     29252
D13  S   DE   FR6      5799
D13  N   UK   CW1        38
D13  N   DE   FR1         9

Вывод, который я хочу:

vso type   loc        total_qty
D13  S     CW1, FR6     35324
D13  N     CW1, FR1       47

Я полагаю, что базовая настройка будет выглядеть примерно так:

SELECT vso, type, SUM(qty) as total_qty, [some sort of concat function of loc]
FROM [table above]
GROUP BY vso, type

Но я не уверен, что делать с колонкой loc.В идеале, если значения loc для vso и для типа идентичны, я бы хотел, чтобы отображалось только одно из них, а не дубликаты.

Кстати, я делаю это в AWS Redshift.

1 Ответ

0 голосов
/ 19 декабря 2018

использовать листаг

SELECT vso, type, SUM(qty) as total_qty, listagg(loc ,', ') 
within group (order by type)
FROM [table above]
GROUP BY vso, type
...