【发布时间】:2014-11-03 21:37:17
【问题描述】:
我有一个包含电子邮件地址、用户和域名的表 (t1):
email user domain
joe123@domain.com joe123 domain.com
sue234@email.net sue234 email.net
... ... ...
还有一张表(t2),显示发送到某个地址的电子邮件是否被打开:
Opened Email
0 joe123@domain.com
1 sue234@email.net
0 jack55@mybarber.com
... ...
我想将 t1.domain 加入 t2,但仅限出现次数超过 100 倍的域。
我可以创建一个包含出现次数的表
SELECT domain, count(domain) cntDomain
from table1
group by domain
结果如下:
domain cntDomain
domain.com 5000
email.net 4300
mybarber.com 67
生成的表格如下所示:
Opened Email domain
0 joe123@domain.com domain.com
1 sue234@email.net email.net
0 jack55@mybarber.com other
... ...
但无法弄清楚连接(我假设它将是一个左连接来为不经常出现的值创建“其他”值),如果它出现超过 100 倍并且如果不是“其他”的值。
【问题讨论】:
-
你需要一个
having count(*) > 100
标签: sql sql-server join case