我要求向我们的营销组提供唯一的电子邮件地址列表。我可以毫无问题地生成列表。他们现在想要添加使用该电子邮件地址的最新日期。电子邮件地址的信息位于名为customer的表中,事务日期位于名为activity的表中。这两个表由帐号字段连接。
如果我写代码
select c.email, a.transactiondate
from customer c join activity a on
c.account = a.account
where a.transactiondate between '12/1/2016' and '12/31/2016'
我最终得到了电子邮件的多个交易日期。它不是很多,但营销人员不想处理它。
为select添加distinct会减少数量,但只会减少电子邮件和交易日期的组合。我认为我真正需要的是不同的电子邮件,然后是该帐号的最新日期。
非常感谢任何帮助。
答案 0 :(得分:0)
您需要通过电子邮件进行分组,并使用汇总功能来获取最新日期。
select c.email, max(a.transactiondate)
from customer c join activity a on
c.account = a.account
where a.transactiondate between '12/1/2016' and '12/31/2016'
group by c.email