2015-10-26 21 views
1

這是我的問題:我有一個這樣的數據集。對具有匹配ID的行執行功能


ID | Date   
1123 | 01-JUL-2015 
1123 | 02-JUL-2015 
1155 | 01-JUL-2015 
1180 | 02-JUL-2015 
1190 | 01-JUL-2015 
1190 | 03-JUL-2015 

上述管道deliminated集是兩列,我壞格式道歉。

我需要做的是在第一列中找到匹配的ID,並減去兩個匹配ID的日期以查看日期的差異。我希望數據集如下所示。


ID | Days 
1123 | 1 
1155 | 0 
1180 | 0 
1190 | 3 

有誰知道任何有用的功能或解決方案來解決這個問題呢?我正在使用Oracle SQL。

+1

將有永遠是一個給定的ID atmost 2個日期? –

+0

不,我使用DISTINCT函數來篩選唯一的ID和日期組合。所以如果日期值不同,唯一會有多於一次。 – Kevin

回答

3

我想這你想要做什麼:

select id, (max(date) - min(date)) as daydiff 
from t 
group by id; 
+0

感謝您的回覆。我唯一擔心的是,第二條select語句將查找最大和最小日期,而不考慮ID。或者GROUP BY只選擇特定ID的最小值和最大值? – Kevin

+0

沒關係,我測試了這個SQL代碼,它正常工作,就像我希望的那樣。謝謝! – Kevin