Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Raggruppa per query sql su colonna unita da virgola

Una soluzione SQL Server

WITH T ([Data], [Mail])
     AS (SELECT 1,'[email protected],[email protected]' UNION ALL
         SELECT 2,'[email protected],[email protected]')
SELECT address  AS Mail,
       COUNT(*) AS [Count]
FROM   T
       CROSS APPLY (SELECT CAST('<m>' + REPLACE([Mail], ',', '</m><m>') + '</m>'
                                AS XML
                           ) AS x) ca1
       CROSS APPLY (SELECT T.split.value('.', 'varchar(200)') AS address
                    FROM   x.nodes('/m') T(split)) ca
GROUP  BY address