[英]Get unique value using STRING_AGG in SQL Server 2017
The following query:以下查询:
SELECT T1.REPORTED_NAME, STRING_AGG(CAST(T1.ENTRY AS NVARCHAR(MAX)),',') AS Average_Str
FROM Table1 T1
INNER JOIN Table2 T2 ON T1.ID = T2.ProdID
WHERE T1.ENTRY like '%[A-Za-z]%'
GROUP BY T1.REPORTED_NAME
ORDER BY T1.REPORTED_NAME
Returns:返回:
REPORTED_NAME Average_Str
Report_1 Failed,Failed,Failed,Failed,Failed,
Report_2 Passed,Passed,Passed
I would like my final output to have only unique value as below我希望我的最终输出只有如下唯一值
REPORTED_NAME Average_Str
Report_1 Failed
Report_2 Passed
Thank you in advance for your help预先感谢您的帮助
You can go for first getting unique values and then applying string aggregate like below:您可以先获取唯一值,然后应用如下所示的字符串聚合:
;WITH CTE_UniqueValues
(
SELECT Reported_Name, Entry, MAX(ID) AS ID
FROM Table1
GROUP BY Reported_Name, Entry
)
SELECT T1.REPORTED_NAME, STRING_AGG(CAST(T1.ENTRY AS NVARCHAR(MAX)),',') AS Average_Str
FROM CTE_UniqueValues T1
INNER JOIN Table2 T2 ON T1.ID = T2.ProdID
WHERE T1.ENTRY like '%[A-Za-z]%'
GROUP BY T1.REPORTED_NAME
ORDER BY T1.REPORTED_NAME
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.