首先让我说这不是干净的数据,不是由我创建的,它是从我的工作使用的另一个程序收集的信息。基本上我开始使用html文件,并创建了一个csv将其导入sql server。我有3列JobNumber ArchiveMedium和ArchiveCreationDate。
示例
JobNumber ArchiveMedium
81609 0004026
81609 \\Datablock1\datablockstore1\
当我使用计数(*)时,我有大约6000多个重复记录显示。有没有办法让我编写一个选择查询,只显示符合上述示例中标准的重复记录。
大多数重复项是一个具有相应数字的工作号,即低于......
JobNumber ArchiveMedium
81608 000396I
81608 000396K
81608 000396H
我只关心具有ArchiveMedium编号的重复JobNumber以及\ Datablock .....
这有意义吗?任何帮助或建议将不胜感激。
答案 0 :(得分:0)
这样做你想要的吗?
select jobNumber
from t
group by jobNumber
having sum(case when ArchiveMedium like '\\Datablock%` then 1 else 0 end) > 0 and
count(*) > 1;
这应该返回至少有一个" datablock"记录。如果需要,您可以加入原始表以获取详细行。
答案 1 :(得分:0)
阅读完你的评论后,我认为这就是你要找的东西
SELECT JobNumber , SUM(Col1) , SUM(Col2)
FROM (
SELECT JobNumber , case when ArchiveMedium like '\\Datablock%' then 1 else 0 end AS Col1 , case when ArchiveMedium not like '\\Datablock%' then 1 else 0 end AS Col2
from Table_2) AS T1
GROUP BY JobNumber
HAVING SUM(Col1) > 0 AND SUM(Col2) > 0