首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过sql查询消除重复

问如何通过sql查询消除重复
EN

Stack Overflow用户
提问于 2015-09-02 06:42:04
回答 1查看 41关注 0票数 1

我有一个数据库表,存储电子邮件地址数据,加入日期和专栏通讯(是/否)。然而,有许多重复的电子邮件地址与不同的日期和价值在通讯专栏。我需要编写sql查询,该查询将排除那些日期较晚的电子邮件(记录),并且只保留带有最老日期的记录:

​

代码语言:javascript
复制
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

​

​

代码语言:javascript
复制
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

​

我试图使用以下方法:

代码语言:javascript
复制
SELECT [EMAIL]
      ,min([DATEJOIN]) as [DATEJOIN]
	  , [NEWSLETTER]
  FROM [test].[dbo].[first]
  group by [EMAIL], [NEWSLETTER]

​

但不起作用。我需要决定如何处理“通讯”字段。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-02 06:48:31

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

从test.dbo.first选择电子邮件,其计数(*)>1

如果你不想这样做,你可以这样做:

从第一个a.*内部连接(选择email,min(datejoin)作为第一组电子邮件中的连接)b在a.email = b.email和a.datejoin = b.datejoin上

应该能行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32346221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档