我需要一个SQL查询,可以计算使用正则表达式发送的电子邮件数量
例如
列名:SENT_EMAIL表名:EMAILS
如果SENT_EMAIL有 abc@gmail.com; xyz@hotmail.com 那么数应该是2
如果SENT_EMAIL有 abc@gmail.com 那么数应该是1
我相信我们可以使用'@'作为参考来计算SENT_EMAIL列中的电子邮件数量,但我无法想到如何。
提前谢谢。
答案 0 :(得分:1)
检查这个
select e.SENT_EMAIL, length(e.SENT_EMAIL) - length(replace(e.SENT_EMAIL, '@', '')) as mail_cnt from EMAILS e
答案 1 :(得分:1)
您可以使用REGEXP_COUNT
select regexp_count(sent_email, '[[:alnum:]]@[[:alnum:]]')
from emails
我正在检查除了@
之外的其他地方,以确保您只计算电子邮件。这在技术上是不正确的,因为电子邮件除了字母数字之外还有许多其他字符,因此它取决于您的数据。如果您只想计算连续@
的数量,那就去做吧。
select regexp_count(sent_email, '@')
from emails