我有电子邮件的大量表结束与SQL分页/分组串并想通过域排序(和计数在每个域中#)匹配同样由
输出示例:
@ gmail.com = 1000
@ aol.com = 790
@ hotmail.com = 550
@ somethingweird.c om = 2
正则表达式适用于从“@”到字符串中最后一个字符匹配的所有字符串。
任何想法我可以做到这一点?
我有电子邮件的大量表结束与SQL分页/分组串并想通过域排序(和计数在每个域中#)匹配同样由
输出示例:
@ gmail.com = 1000
@ aol.com = 790
@ hotmail.com = 550
@ somethingweird.c om = 2
正则表达式适用于从“@”到字符串中最后一个字符匹配的所有字符串。
任何想法我可以做到这一点?
如果你可以改变你的设计,你可以尝试改变你在数据库中存储电子邮件地址的方式,或者添加一个额外的列。与索引相比,这将会更好地执行,而不必通过整个表执行表扫描来生成列表分组。
如果它很大,那么您需要一个可扩展的解决方案。
添加一个计算列(或单独的域列)来分割@
上的电子邮件地址并对其进行索引。
然后,它是一个简单的COUNT .. GROUP BY
如果你使用Oracle,你可以GROUP BY regexp_substr(mail_column,'@.*')
什么是您使用RDBMS
? – 2011-02-17 19:27:38