2017-08-09 23 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が1回だけ表示される場所を記録します。したがって、上記の例では、ID = 30が除外されています。それを行うクエリを作成するにはどうすればよいですか?

+0

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

+0

@Deltharis 'だけでDISTINCT'は、ここでの答えではありません「日付」の値は「複製」間で異なるためです。 –

答えて

2

ここでは、ビューではなくテーブルから選択していると仮定して簡単な方法の1つです。

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

。お問い合わせありがとうございます。両方とも完璧に働いた。 –

関連する問題