Как объединить ряды похожих результатов в один? - PullRequest
0 голосов
/ 13 июня 2019

Как мне объединить ряды похожих результатов в один? Например, вот что у меня есть:

Title | Actor | StartYear | Genres
Noah | Adam   | 2000 | Documentary
Noah | Eve    | 2000 | Documentary
Noah | Joshua | 2000 | Documentary
Narnia | Peter | 2005 | Action
Narnia | James | 2005 | Action

Что я хочу:

Title | Actor | StartYear | Genres
Noah | Adam, Eve, Joshua  | 2000 | Documentary
Narnia | Peter, James | 2005 | Action

Метод, представленный в этой ссылке STRING_AGG, не работает, потому что у меня есть 10 столбцов. (или я ошибаюсь? я не могу выполнить запрос, если я использовал STRING_AGG, потому что другие столбцы не входят в предложение grouped by) Результаты, разделенные запятыми в SQL

Например, это работает,

 SELECT primaryTitle, STRING_AGG(Actor, ', ') FROM table GROUP BY primaryTitle

Это не

SELECT primaryTitle, STRING_AGG(Actor, ', '), StartYear, Genre FROM table GROUP BY primaryTitle

1 Ответ

2 голосов
/ 13 июня 2019

Вам просто нужно убедиться, что вы группируете по всем столбцам, к которым не применяется агрегатная функция. т.е.

SELECT primaryTitle, STRING_AGG(Actor, ', '), StartYear, Genre 
FROM table 
GROUP BY primaryTitle, StartYear, Genre 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...