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