2012-09-30 59 views
2

我需要一个查询来检索看起来像重复搜索查询的机器停止代码和故障描述,但它非常不同。MySQL查询找到类似但不重复的行

这里是我的源表

enter image description here

我使用这个查询

SELECT `TestDups`.`MachineID` 
    , `TestDups`.`Code` 
    , `TestDups`.`StopTime` 
    FROM `TestDups` 
WHERE `TestDups`.`Code` IN (SELECT `TestDups`.`Code` 
           FROM `TestDups` 
           GROUP BY `TestDups`.`Code` 
           HAVING COUNT(*) > 0) 
ORDER BY `TestDups`.`MachineID` 

返回此:

enter image description here

,但我想它返回这个:

enter image description here

我怎样才能达到我的目标是什么?

+0

您好,欢迎堆栈溢出。如果您有问题,请在您的问题中提供相关信息;不在外部网站上。 – Ben

+0

感谢您的帮助本 – user1709570

+0

我_think_您正在寻找machineid的停机时间总和,代码组合的计数最大?你能否更新你的问题来描述你想要的? – Ben

回答

2

像下面的东西将工作;

SELECT ... SUM(StopTime), COUNT(*) as Num FROM ... GROUP BY MACHINEID, CODE 
+0

你是对的;您的查询完美无缺! – user1709570

1

希望这个查询会产生你想要的结果。我已经给链接,演示以及

select MachineID,Code,sum(stoptime) as StopTime, count(*) as Num from 
TestDups group by MachineID,code order by machineid 

Link for SQL Fiddle Demo

+0

@ user1709570快照很好,但提供表格结构和数据可以很好地解释/清除例如你可以看看这个问题http://stackoverflow.com/questions/12653678/group-concat-concat-not-working-with-null-and-not-null-values – Sami

+0

谢谢你的帮助! – user1709570