У меня есть таблица, как показано ниже:
Необходимо агрегировать user_comments
на основе comment_id
Желаемый ОП:
Я попробовал ниже:
SELECT ID,STRING_AGG(USER_COMMENTS,' ') comment from table_A group by ID;
это дает мне:
Комментарии не по порядку comment_id
DDL-файлы приведены ниже:
CREATE TABLE TABLE_A
(
COMMENT_ID VARCHAR(100),
ID VARCHAR(100),
USER_COMMENTS VARCHAR(100)
);
INSERT INTO TABLE_A VALUES ('1521013*1521167-1','1521013*1521167','This is to inform');
INSERT INTO TABLE_A VALUES ('1521013*1521167-3','1521013*1521167','asking for ');
INSERT INTO TABLE_A VALUES ('1521013*1521167-4','1521013*1521167','detailed report.');
INSERT INTO TABLE_A VALUES ('1521013*1521167-2','1521013*1521167','that user is ');
Как мне агрегировать его на основе comment_id
заказа?
Любые материалы приветствуются.
Спасибо
это всего лишь выборка из 4 записей. Идентификаторов может быть n.
string_agg(...) within group (order by comment_id)
?
Задавая вопрос, вам необходимо предоставить минимальный воспроизводимый пример: (1) DDL и образец набора данных, т. е. таблицы CREATE плюс инструкции INSERT T-SQL. (2) Что вам нужно сделать, т. е. логику и попытку реализации вашего кода в T-SQL. (3) Желаемый результат, основанный на примере данных в пункте 1 выше. (4) Версия вашего SQL-сервера (ВЫБЕРИТЕ @@version;).
@YitzhakKhabinsky Вы публикуете эти комментарии автоматически под всеми вопросами [sql], не читая? Мне кажется, этот вопрос с самого начала содержал все, что вы запрашиваете. За исключением, может быть, версии, но опять же, это «та, которая поддерживает string_agg», и это единственное, что имеет значение.
включим версию в следующий раз. Спасибо
@Novice_Techie, спасибо за понимание.
Пожалуйста, попробуйте
SELECT ID,STRING_AGG(USER_COMMENTS,' ')WITHIN GROUP (ORDER BY COMMENT_ID ASC) AS comment
FROM table_A
GROUP BY ID
На данный момент я могу получить то, что мне нужно, это работает. не знал о «внутри группы». Спасибо, рассмотрим подробно.
У вас есть 4 записи с 4 разными значениями comment_id. Агрегация невозможна. Вы имеете в виду сортировку?