仅在oracle中选择非重复记录

时间:2017-08-09 15:04:23

标签: sql oracle

我有一张包含以下记录的表格:

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

现在所需的结果集应如下所示:

providers: [
    { provide: ActivatedRoute, useValue: { snapshot: { params: { id: 1 } } } }
]

我要做的是选择ID只出现一次的记录。因此,在上面的示例中,排除了ID = 30。如何编写执行此操作的查询?

1 个答案:

答案 0 :(得分:3)

这是一种简单的方法,假设您从表中选择而不是视图。

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)