Агрегация строк в SQL Server

У меня есть таблица, как показано ниже:

COMMENT_ID ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЬ_КОММЕНТАРИИ 1521013*1521167-1 1521013*1521167 Это чтобы сообщить 1521013*1521167-3 1521013*1521167 просить 1521013*1521167-4 1521013*1521167 подробный отчет. 1521013*1521167-2 1521013*1521167 этот пользователь

Необходимо агрегировать user_comments на основе comment_id

Желаемый ОП:

ИДЕНТИФИКАТОР КОММЕНТАРИЙ 1521013*1521167 Это означает, что пользователь запрашивает подробный отчет.

Я попробовал ниже:

 SELECT ID,STRING_AGG(USER_COMMENTS,' ') comment from table_A group by ID;

это дает мне:

ИДЕНТИФИКАТОР комментарий 1521013*1521167 Это необходимо для информирования о запросе подробного отчета. этот пользователь

Комментарии не по порядку 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 записи с 4 разными значениями comment_id. Агрегация невозможна. Вы имеете в виду сортировку?

Bart McEndree 26.08.2024 21:02

это всего лишь выборка из 4 записей. Идентификаторов может быть n.

Novice_Techie 26.08.2024 21:03
string_agg(...) within group (order by comment_id)?
GSerg 26.08.2024 21:03

Задавая вопрос, вам необходимо предоставить минимальный воспроизводимый пример: (1) DDL и образец набора данных, т. е. таблицы CREATE плюс инструкции INSERT T-SQL. (2) Что вам нужно сделать, т. е. логику и попытку реализации вашего кода в T-SQL. (3) Желаемый результат, основанный на примере данных в пункте 1 выше. (4) Версия вашего SQL-сервера (ВЫБЕРИТЕ @@version;).

Yitzhak Khabinsky 26.08.2024 21:09

@YitzhakKhabinsky Вы публикуете эти комментарии автоматически под всеми вопросами [sql], не читая? Мне кажется, этот вопрос с самого начала содержал все, что вы запрашиваете. За исключением, может быть, версии, но опять же, это «та, которая поддерживает string_agg», и это единственное, что имеет значение.

GSerg 26.08.2024 21:14

включим версию в следующий раз. Спасибо

Novice_Techie 26.08.2024 21:18

@Novice_Techie, спасибо за понимание.

Yitzhak Khabinsky 26.08.2024 21:29
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
7
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, попробуйте

SELECT ID,STRING_AGG(USER_COMMENTS,' ')WITHIN GROUP (ORDER BY COMMENT_ID ASC) AS comment 
FROM table_A 
GROUP BY ID

На данный момент я могу получить то, что мне нужно, это работает. не знал о «внутри группы». Спасибо, рассмотрим подробно.

Novice_Techie 26.08.2024 21:17

Другие вопросы по теме