Postgres获取电子邮件域数

时间:2017-01-29 18:45:43

标签: sql postgresql

如果我的数据库中有用户电子邮件条目,并且我想查看有多少用户拥有该域@gmail.com以及有多少用户拥有该域@yahoo.com等等。最好的方法是什么?

现在我正在通过执行以下操作逐个手动运行查询:

select email from "user" where email ilike '%@gmail.com';

2 个答案:

答案 0 :(得分:17)

我的第一个想法是通过以下方式提取域和组:

select substring(email from '@(.*)$') as domain, count(*)
from "user"
group by domain

答案 1 :(得分:0)

这是另一种方法:

select dm.domain, count(*) as total
from (
         select lower(right(email, char_length(email) - position('@' in email))) as domain
         from "user"
         group by  domain, email)dm
group by dm.domain
order by total desc