A SQL Server Solution
WITH T ([Data], [Mail])
AS (SELECT 1,'m1@gmail.com,m2@hotmail.com' UNION ALL
SELECT 2,'m2@hotmail.com,m3@test.com')
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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…