Возврат отдельных записей из таблицы с количеством экземпляров - PullRequest
0 голосов
/ 20 июня 2019

У меня есть база данных, в которой регистрируются сделанные запросы, и я пытаюсь найти уникальные исключения, выдаваемые для каждого запроса, и FK, которым был создан каждый экземпляр этого исключения.Я пробовал несколько разных итераций, но не могу найти подходящее решение, поэтому я решил спросить здесь, так как уверен, что слишком обдумал это.

Пример данных

Unauthorized User   42
Internal Server Error   57
Unauthorized Employee   88
Bad Request 57
Bad Request 42
Bad Request 42
Bad Request 42
Bad Request 42
Bad Request 42
Unauthorized User   57

Пример желаемых результатов

Unauthorized    42, 88, 57
Internal Server Error   57
Bad Request 42, 57

РЕДАКТИРОВАТЬ: Версия Sql server 2014, и я изменил данные с изображений на встроенный текст по запросу.Я доволен ответом, но для бонуса я добавляю в следующее условие исходные данные, имеющие похожие исключения, но желающие, чтобы они были сгруппированы вместе, как сгруппированные неавторизованные исключения.

Что у меня так далеко:

Select r.Exception, stuff(
   (select distinct FK + ',' 
    from [Table] wr 
    where r.Exception = wr.Exception 
    for XML PATH('')),1,0,''
) as [FKs]
From [Table] r
Group by r.Exception

1 Ответ

1 голос
/ 20 июня 2019

SQL Server (начиная с 2017 года)

SELECT Exception, STRING_AGG (FK, ',') AS FK
FROM YourTable
GROUP BY Exception; 

ИЛИ

Оптимальный способ объединения / агрегирования строк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...