2017-01-29 2 views
1

Если у меня есть записи электронной почты пользователя в моей базе данных, и я хочу узнать, сколько у пользователей домена @gmail.com и сколько у пользователей домена @yahoo.com и так далее. Какой был бы лучший способ сделать это?Postgres Получите количество почтовых доменов

Сейчас я прохожу и выполнив запрос вручную один за другим, выполнив:

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

Вы можете выполните операцию substr, а затем приравняйте, это будет немного быстрее. Кроме того, вы можете создать индекс в столбце электронной почты, чтобы ускорить запрос дальше –

ответ

6

Моя первая мысль была бы извлечь домен и группу с тем, что:

select substring(email from '@(.*)$'), count(*) 
from "user" 
group by substring(email from '@(.*)$') 
Смежные вопросы