2017-08-09 49 views
0

選擇不重複的記錄我有如下記錄的表:只有在Oracle

ID Date   
------------------ 
20 03/07/2017       
30 03/07/2017              
30 17/07/2017        
40 24/07/2017        
50 24/07/2017 

現在所需要的結果集應如下:

ID Date   
------------------ 
20 03/07/2017            
40 24/07/2017        
50 24/07/2017 

我所試圖做的是選擇記錄ID只出現一次。因此在上面的例子中,ID = 30被排除在外。我如何編寫一個查詢來做到這一點?

+0

https://www.techonthenet.com/oracle/distinct.php – Deltharis

+0

@Deltharis'單獨DISTINCT'是不是問題的答案在這裏,因爲「日期」值在「重複」之間有所不同。 –

回答

2

這是一個簡單的方法,假設您從表格中選擇而不是視圖。

SELECT ID, "Date" 
FROM your_table a 
WHERE NOT EXISTS (SELECT 'another record with same ID' 
        FROM your_table b 
        WHERE b.id = a.id 
        AND b.rowid != a.rowid) 

的另一種方式,在更多的情況下工作:

SELECT * 
FROM your_table 
WHERE id IN (SELECT b.id 
       FROM your_table b 
       GROUP BY b.id 
       HAVING COUNT (*) = 1) 
+0

。謝謝你的查詢。兩者都完美運作。 –