2011-02-17 32 views
2

我有電子郵件的大量表結束與SQL分頁/分組串並想通過域排序(和計數在每個域中#)匹配同樣由

輸出示例:

@ gmail.com = 1000

@ aol.com = 790

@ hotmail.com = 550

@ somethingweird.c om = 2

正則表達式適用於從「@」到字符串中最後一個字符匹配的所有字符串。

任何想法我可以做到這一點?

+0

? – 2011-02-17 19:27:38

回答

0

如果你可以改變你的設計,你可以嘗試改變你在數據庫中存儲電子郵件地址的方式,或者添加一個額外的列。與索引相比,這將會更好地執行,而不必通過整個表執行表掃描來生成列表分組。

0

如果它很大,那麼您需要一個可擴展的解決方案。

添加一個計算列(或單獨的域列)來分割@上的電子郵件地址並對其進行索引。

然後,它是一個簡單的COUNT .. GROUP BY

0

如果你使用Oracle,你可以GROUP BY regexp_substr(mail_column,'@.*')什麼是您使用RDBMS