You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL实现不同邮箱域名的邮箱地址数量统计

统计不同邮箱域名对应的邮箱地址数量

嘿,这需求很常见,咱们直接来搞定它!核心思路就是从邮箱地址里提取出域名部分,再按域名分组计数。下面我给你分不同数据库类型给出具体的SQL实现,你可以根据自己用的数据库来选:

MySQL/MariaDB 实现

SELECT 
  SUBSTRING_INDEX(email, '@', -1) AS domain,
  COUNT(*) AS count
FROM your_table_name
GROUP BY domain
ORDER BY count DESC;

解释一下:SUBSTRING_INDEX(email, '@', -1) 这个函数会把邮箱地址按@分割,取最后一段,也就是咱们要的域名。然后按域名分组,用COUNT(*)统计每个域名下的邮箱数量,最后按数量降序排列(可选,方便看排行)。

PostgreSQL 实现

SELECT 
  SPLIT_PART(email, '@', 2) AS domain,
  COUNT(*) AS count
FROM your_table_name
GROUP BY domain
ORDER BY count DESC;

这里用SPLIT_PART(email, '@', 2),意思是按@分割邮箱地址,取第2部分,也就是域名。逻辑和上面完全一致。

SQL Server 实现

SELECT 
  RIGHT(email, LEN(email) - CHARINDEX('@', email)) AS domain,
  COUNT(*) AS count
FROM your_table_name
GROUP BY RIGHT(email, LEN(email) - CHARINDEX('@', email))
ORDER BY count DESC;

SQL Server里没有直接的分割函数,所以用CHARINDEX找到@的位置,再用RIGHT截取从@后面到结尾的部分,从而得到域名。

用你给出的测试数据运行上面任意一段SQL,都会得到你期望的结果:

domain | count
--------------+-----------------
email.com | 2
something.com | 1

记得把your_table_name替换成你实际的表名哦!

内容的提问来源于stack exchange,提问作者user6236754

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:23:32