sql >> Base de Datos >  >> RDS >> Sqlserver

Agrupar por consulta sql en la columna unida por comas

Una solución de servidor SQL

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