用于显示电子邮件列中域名总数的SQL
我在MS Access表中有一个电子邮件列(duplicates ok),我想从中显示所有域名(来自电子邮件的域部分)及其在MS Access中的计数 表:用于显示电子邮件列中域名总数的SQL,sql,ms-access,ms-access-2013,Sql,Ms Access,Ms Access 2013,我在MS Access表中有一个电子邮件列(duplicates ok),我想从中显示所有域名(来自电子邮件的域部分)及其在MS Access中的计数 表: 我有SQL: SELECT EMail.EMail, COUNT(*) FROM EMail GROUP BY EMail.EMail ORDER BY COUNT(*) DESC; 但它给出了基于电子邮件的结果。比如: EMail Expr1001 XXX@googlemail.com 4 YYY@googlemail.com
我有SQL:
SELECT EMail.EMail, COUNT(*)
FROM EMail
GROUP BY EMail.EMail
ORDER BY COUNT(*) DESC;
但它给出了基于电子邮件的结果。比如:
EMail Expr1001
XXX@googlemail.com 4
YYY@googlemail.com 3
AA@argpub.com 2
等等
如何显示域及其总数?比如:
gmail.com 10
yahoo.com 5
yahoo.co.in 3
等等
我正在使用Access 2013。MS Access有两个功能,特别是帮助。你必须基本上做到这一点:
- 提取出现在“@”字符后面的域部分。(Mid和InStr函数对此有帮助。)
- 将此与计数一起使用
Mid([Email]、InStr([Email]、“@”)+1)
将为您提供域名
要计算这些,请使用正常计数
参考:
现在,如果您需要MSSQL server的SQL:
select SUBSTRING(email,(CHARINDEX('@',email)+1),1), count(*) from ...(rest of your query)
在SQL中,您可以执行以下操作:
SELECT SUBSTRING_INDEX(EMail.EMail, '@', -1) AS `Email Domain`, COUNT(*)
FROM EMail
GROUP BY SUBSTRING_INDEX(EMail.EMail, '@', -1)
ORDER BY COUNT(*) DESC;