基于列比较的左连接+计数

时间:2017-03-27 23:36:14

标签: sql

我不确定为什么这不起作用:请参阅sqlfiddle here

我有两张桌子

表1:

Unsub|Email|UnsubValue
Y    | a   | 100
Y    | b   | 200
N    | c   | NULL
N    | d   | NULL

表2:

Email|UnsubValue
a    |100
a    |200
b    |100
b    |150
c    |300

我想计算表2中的电子邮件发生次数表2中的unsubValue小于表1中的unsubValue。所以所需的输出是这样的:

Email|UnsubCount
a    |1
b    |2
c    |0
d    |0

1 个答案:

答案 0 :(得分:1)

这是LEFT JOINGROUP BY的直接应用:

select t1.email, count(t2.email)
from t1 left join
     t2
     on t1.email = t2.email and t2.UnsubValue < t1.UnsubValue
group by t1.email;