SQL消除重复项和集合中的最大日期

时间:2017-01-10 17:14:41

标签: sql-server-2012

我要求向我们的营销组提供唯一的电子邮件地址列表。我可以毫无问题地生成列表。他们现在想要添加使用该电子邮件地址的最新日期。电子邮件地址的信息位于名为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会减少数量,但只会减少电子邮件和交易日期的组合。我认为我真正需要的是不同的电子邮件,然后是该帐号的最新日期。

非常感谢任何帮助。

1 个答案:

答案 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