简体   繁体   English

SQL查询以查找具有相同电子邮件域的最大计数

[英]SQL Query to find the Max count with same email domain

I have a email id column which stores the full email ID. 我有一个电子邮件ID列,其中存储了完整的电子邮件ID。 I want to get the maximum count based on the domain ie @gmail.com,@xyz.com Seems like in GROUP BY clause we cannot apply any wildcards which will only consider the domain from the full email address. 我想获取基于域的最大计数,即@ gmail.com,@ xyz.com似乎在GROUP BY子句中,我们无法应用任何仅考虑完整电子邮件地址中的域的通配符。

For Mysql 对于MySQL

SELECT SUBSTRING_INDEX(EMail.EMail, '@', -1) AS `Email Domain`, COUNT(*)
FROM EMail
GROUP BY SUBSTRING_INDEX(EMail.EMail, '@', -1)

with data example 带有数据的例子

SELECT SUBSTRING_INDEX(EMail.EMail, '@', -1) AS `Email Domain`, COUNT(*)
FROM
  (
  select 'tuhin@gmail.com' as EMail
  UNION
    SELECT 'tuhin@yahoo.com'
    union
    select 'abc@xyz.com'
    union
      select 'hin@gmail.com'
  ) as EMail

  GROUP BY SUBSTRING_INDEX(EMail.EMail, '@', -1)

For SQL server 对于SQL Server

SELECT RIGHT(Email, LEN(Email) - CHARINDEX('@', email)) Domain ,
COUNT(Email) EmailCount
FROM   dbo.email
WHERE  LEN(Email) > 0
GROUP BY RIGHT(Email, LEN(Email) - CHARINDEX('@', email))
ORDER BY EmailCount DESC

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM