【问题标题】:Select Query to find Duplicated Values from the table [duplicate]选择查询以从表中查找重复值 [重复]
【发布时间】:2018-09-30 03:50:24
【问题描述】:

如何从表格中获取重复信息

Docnum |CustomerName| DocumentValue| Date
101    |ABC         | 10           | 14-04-18
102    |ABC         | 10           | 14-04-18
103    |LMN         | 11           | 14-04-18
104    |KFB         | 11           | 15-04-18
105    |KFB         | 12           | 16-04-18
106    |KFB         | 12           | 16-04-18
107    |KFB         | 12           | 17-04-18
108    |XYZ         | 12           | 17-04-18

结果应该是:

Docnum |CustomerName| DocumentValue| Date     | Count
101    |ABC         | 10           | 14-04-18 | 2
102    |ABC         | 10           | 14-04-18 | 2
105    |KFB         | 12           | 16-04-18 | 3
106    |KFB         | 12           | 16-04-18 | 3
107    |KFB         | 12           | 16-04-18 | 3

【问题讨论】:

  • 我想回答,但我知道这是一个重复的东西,你自己可以通过 5-10 分钟的研究找到,所以我不会回答。
  • 这些是本网站上一些最受欢迎的帖子...简单的搜索就能轻松找到答案。

标签: sql sql-server


【解决方案1】:

如果要根据客户、文档值和日期查找重复项并保留文档编号,可以使用窗口功能。

SELECT Docnum , CustomerName, DocumentValue, Date,  c from
(
SELECT Docnum , CustomerName, DocumentValue, Date, COUNT(1) OVER(PARTITION BY CustomerName, DocumentValue, Date) AS c  

) t where c >= 1;

【讨论】:

  • 查看示例数据,这将返回正好零行,因为 Docnum 似乎是一个序列号。
  • 谢谢,刚刚更新
  • @SeanLange 你是对的。输出为空。
  • @hlagos 非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 1970-01-01
  • 2012-08-18
  • 2016-07-21
  • 2019-02-10
  • 2013-04-10
  • 1970-01-01
相关资源
最近更新 更多