我有一个数据库表,用于存储电子邮件地址数据,加入日期和列简报(是/否)。但是,新闻稿列中有许多重复的电子邮件地址,其中包含不同的日期和值。我需要编写sql查询来排除那些具有更新日期的电子邮件(记录),并只留下具有最早日期的记录:
EMAIL DATEJOIN NEWSLETTER
zzzzzzzzzz_@hotmail.com 02/03/2015 0
zzzzzzzzzz_@hotmail.com 30/06/2015 1
vishythamack@hotmail.com 22/09/2012 1
vishysblue@gmail.com 19/09/2012 1
yann-o@hotmail.fr 07/07/2015 0
yannnsheng@hotmail.com 02/03/2015 0
yannnsheng@hotmail.com 22/09/2012 1
thilaxanschool@gmail.com 18/09/2013 1

What I need After Query
EMAIL DATEJOIN NEWSLETTER
zzzzzzzzzz_@hotmail.com 02/03/2015 0
vishythamack@hotmail.com 22/09/2012 1
vishysblue@gmail.com 19/09/2012 1
yann-o@hotmail.fr 07/07/2015 0
yannnsheng@hotmail.com 22/09/2012 1
thilaxanschool@gmail.com 18/09/2013 1

我尝试使用以下内容:
SELECT [EMAIL]
,min([DATEJOIN]) as [DATEJOIN]
, [NEWSLETTER]
FROM [test].[dbo].[first]
group by [EMAIL], [NEWSLETTER]

但它不起作用。我需要决定如何处理时事通讯领域。有什么想法吗?
答案 0 :(得分:0)
我建议只使用重复值查找所有内容并使用某种脚本删除旧值。
选择电子邮件 FROM [测试]。[dbo]。[first] 有计数(*)> 1
如果您不想这样做,您可以执行以下操作:
首先选择a。* 内部联接(选择电子邮件,min(datejoin)作为第一组通过电子邮件加入)b b在a.email = b.email和a.datejoin = b.datejoin
上应该有用。