2012-09-30 60 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