2011-08-10 26 views
0

我有一個表,如下所示:爲了不重複

ident_nr|proj_nr|start_time| 
---------------------------- 
05.26.73|0000001|1116936920| 
09.56.df|0000002|1213431234| 
11.ac.12|0000003|1236485758| 
98.er.df|0000001|1287789755| 
70.12.5n|0000001|1011245554| 
33.dt.vp|0000003|1239125544| 

而且我想這樣的結果:

ident_nr|proj_nr|start_time| 
---------------------------- 
98.er.df|0000001|1287789755| 
09.56.df|0000002|1213431234| 
33.dt.vp|0000003|1239125544| 

其中proj_nr是ASC的順序並使用最大值開始時間。

注意:ident_nr是唯一的,proj_nr可以有多個ident_nr。 數據庫:MySQL。

是否有可以實現此結果的SQL查詢? 感謝

+1

如果有多個proj_nr,您希望選擇哪個ident_nr? – Jacob

+1

這是爲什麼downvoted? – siride

+0

@siride:可能是因爲這個問題很難解釋。 –

回答

1
SELECT t.ident_nr, t.proj_nr, t.start_time 
    FROM YourTable t 
     INNER JOIN (SELECT proj_nr, MAX(start_time) AS MaxTime 
         FROM YourTable 
         GROUP BY proj_nr) q 
      ON t.proj_nr = q.proj_nr 
       AND t.start_time = q.MaxTime 
    ORDER BY t.proj_nr; 
+0

非常感謝。你拯救了我的一天。 :) – Che

+0

@Che:很高興幫助。請在可以的時候點擊旁邊的複選標記標記此答案爲可接受的。 –

1
SELECT t1.* 
FROM table AS t1 
INNER JOIN (
    SELECT proj_nr, MAX(start_time) AS MaxTime 
    FROM table 
    GROUP BY proj_nr) AS t2 
    ON (t1.proj_nr = t2.proj_nr AND t1.start_time = t2.MaxTime) 

您的標準似乎是在您的樣本數據MAX(start_time)。如果沒有,請在你的問題中更詳細地說明你想要什麼。