如何通过sql查询摆脱重复

时间:2015-09-02 06:42:04

标签: duplicates

我有一个数据库表,用于存储电子邮件地址数据,加入日期和列简报(是/否)。但是,新闻稿列中有许多重复的电子邮件地址,其中包含不同的日期和值。我需要编写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]




但它不起作用。我需要决定如何处理时事通讯领域。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我建议只使用重复值查找所有内容并使用某种脚本删除旧值。

选择电子邮件   FROM [测试]。[dbo]。[first]   有计数(*)> 1

如果您不想这样做,您可以执行以下操作:

首先选择a。* 内部联接(选择电子邮件,min(datejoin)作为第一组通过电子邮件加入)b b在a.email = b.email和a.datejoin = b.datejoin

应该有用。