选择查询以从表中查找重复值 [重复]

Posted

技术标签:

【中文标题】选择查询以从表中查找重复值 [重复]【英文标题】: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 分钟的研究找到,所以我不会回答。 ***.com/questions/18932/… 这些是本网站上一些最受欢迎的帖子...简单的搜索就能轻松找到答案。 【参考方案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 非常感谢。

以上是关于选择查询以从表中查找重复值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中删除重复值 [重复]

从表中选择*与从表中选择col1,col2,col3 [重复]

MySQL 查询从表中检索数据和第二个查询以提取其他结果,没有重复

如何从表中列出重复值? [复制]

SQL查询从通配符列等于值的所有表中选择所有行[重复]

SQL查询从通配符列等于值的所有表中选择所有行[重复]