如何查询包含另一项

时间:2016-03-24 14:29:18

标签: sql sql-server

我有一张桌子,可以报告放在一组图纸中的所有标签。每个标签都有一个文件名和图号。我想过滤此表以获取某个文件名的所有条目以及图号的重复项。这将告诉我哪些图纸具有相同标签的倍数。例如,下面链接中的图片显示我在DWG#1中有三个Label 1,在DWG#2中有两个标签#1。这告诉我,我需要清理这两张图中的副本。我需要一个在SQL Server中运行的语句来报告这些条目。谢谢!

Example

2 个答案:

答案 0 :(得分:0)

您可以尝试使用count(*)函数来确定表中有多少重复项。

选择count(),colomn_filename,colomn_drawingnumber 来自table_name group by colomn_filename,colomn_drawingnumber 有计数()> 1

答案 1 :(得分:0)

SELECT fileName, drawingNo, count(*) FROM TableName 
GROUP BY fileName, drawingNo

结果:

标签1 DWG#1 3

标签1 DWG#2 2

如果您确实需要与您的结果相同的结果,请使用左连接

SELECT a.fileName, a.drawingNo FROM TableName a
LEFT JOIN (
SELECT fileName, drawingNo FROM TableName 
GROUP BY fileName, drawingNo 
HAVING COUNT(*) > 1
) b ON a.fileName = b.fileName AND a.drawingNo = b.drawingNo