【问题标题】:Matching similarly ending strings with SQL sort/group by使用 SQL sort/group by 匹配类似结尾的字符串
【发布时间】:2011-06-29 08:19:19
【问题描述】:

我有一个庞大的电子邮件表,想按域排序(并计算每个域中的 #)

示例输出:

@gmail.com = 1000

@aol.com = 790

@hotmail.com = 550

@somethingweird.com = 2

正则表达式将适用于从“@”匹配到字符串中最后一个字符的所有字符串。

有什么想法可以做到这一点吗?

【问题讨论】:

    标签: sql email sorting group-by


    【解决方案1】:

    如果您可以更改您的设计,您可以尝试更改您在数据库中存储电子邮件地址的方式,或者添加一个额外的列。与必须对整个表进行表扫描以生成列表分组相比,这在索引方面的表现要好得多。

    【讨论】:

      【解决方案2】:

      如果它很大,那么您需要一个可扩展的解决方案。

      添加计算列(或单独的域列)以拆分 @ 上的电子邮件地址并为其编制索引。

      那么这是一个简单的 COUNT.. GROUP BY

      【讨论】:

        【解决方案3】:

        如果您使用 Oracle,您可以 GROUP BY regexp_substr(mail_column,'@.*')

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-03
          • 2018-04-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多