如何选择列值不不同的每一行

新手上路,请多包涵

我需要运行一个 select 语句,它返回列的值不不同的所有行(例如 EmailAddress)。

例如,如果表格如下所示:

 CustomerName     EmailAddress
Aaron            aaron@gmail.com
Christy          aaron@gmail.com
Jason            jason@gmail.com
Eric             eric@gmail.com
John             aaron@gmail.com

我需要查询返回:

 Aaron            aaron@gmail.com
Christy          aaron@gmail.com
John             aaron@gmail.com

我已经阅读了很多帖子并尝试了不同的查询,但无济于事。我认为应该工作的查询如下。有人可以提出替代方案或告诉我我的查询可能有什么问题吗?

 select EmailAddress, CustomerName from Customers
group by EmailAddress, CustomerName
having COUNT(distinct(EmailAddress)) > 1

原文由 Grasshopper 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 505
2 个回答

这比 EXISTS 方式快得多:

 SELECT [EmailAddress], [CustomerName] FROM [Customers] WHERE [EmailAddress] IN
  (SELECT [EmailAddress] FROM [Customers] GROUP BY [EmailAddress] HAVING COUNT(*) > 1)

原文由 Serj Sagan 发布,翻译遵循 CC BY-SA 3.0 许可协议

select CustomerName,count(1) from Customers group by CustomerName having count(1) > 1

原文由 Nisar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进