2014-01-17 56 views
1

選擇不同行我有一個名爲CLOCK 2列ID其是NUMBER和CLOCK_IN這是一個日期表。 ID列有重複號碼,我想選擇具有最新CLOCK_IN的ID。SQL按日期

好比說表中有如下數據:

+--+---------+ 
|ID|CLOCK_IN | 
+--+---------+ 
|02|1/14/2013| 
+--+---------+ 
|04|1/14/2013| 
+--+---------+ 
|02|1/20/2013| 
+--+---------+ 
|03|2/13/2013| 
+--+---------+ 

我希望得到排2,3,4,因爲他們是自己爲ID最新clock_ins。

+0

是的,我都試過了。我只需要選擇我不需要CLOCK_IN的ID。我嘗試了SELECT DISTINCT ID FROM CLOCK ORDER BY CLOCK_IN但是這個錯誤。 – user3178424

+0

在你的嘗試中,你選擇了不同的'id's,但試圖用不同的實體訂購,這實際上可能嗎?其實SQL是你如何思考,而不僅僅是編碼..!只是我的想法.. –

+0

總是發佈你試過的東西,結果是什麼。這樣,人們不會認爲你只是想讓別人爲你做你的工作。 – MattD

回答

2
SELECT ID, MAX(CLOCKIN) 
FROM CLOCK 
GROUP BY ID 

注意你的列ID不能單獨的PRIMARY KEY(您的數據爲例),我猜兩列化合物的主鍵。

+0

你說得對,不需要子查詢。我編輯它。 – carexcer

2

GROUP BY和max應該爲你工作。

SELECT ID, MAX(CLOCK_IN) 
FROM CLOCK 
GROUP BY ID 
0

試試這個

SELECT * FROM 
(
SELECT 
ROW_NUMBER() OVER (ORDER BY Clock_IN ASC) AS RN,ID,Clock_IN 
From Clock 
) AS Temp 
WHERE RN = 1 

希望這有助於你

+0

Vignesh,不是'CLOCKIN DESC'嗎? –