Hei!
How can I create an aggregate function to obtain a list of the aggregate values.
given :
key value
Andrei 1
Andrei 2
Andrei 3
Mihai 4
Mihai 5
Mihai 6
I want
key list
Andrei 1,2,3
Mihai 4,5,6
LISTAGG function in DBMS is used to aggregate strings from data in columns in a database table. It makes it very easy to concatenate strings. It is similar to concatenation but uses grouping. The speciality about this function is that, it also allows to order the elements in the concatenated list.
MS SQL solution: [Note: This solution only works on SQL 2005 and later. Original question didn't specify the version in use.]
SELECT
key
, STUFF((SELECT ',' + CAST([value] AS nvarchar(max)) FROM <#Table#> WHERE (key = Results.key) FOR XML PATH ('')),1,2,'') AS NameValues
FROM <#Table#> Results
GROUP BY key
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With