小编Jon*_*oyo的帖子

如何在oracle中选择第一次出现重复记录

我遇到了Oracle查询的问题,其基本目标是获取每个重新出现的行的第一行,但是您可以从数据中理解这一复杂性:

假设我有一个如下所示的表:

ID    | COL1 | COL2 | COL3 | UPDATED_DATE
------|------|------|------|-------------
001   | a    | b    | c    | 14/05/2013
002   | a    | b    | c    | 16/05/2013
003   | a    | b    | c    | 12/05/2013
Run Code Online (Sandbox Code Playgroud)

您应该可以猜测,因为第1列到第3列对于所有3行具有相同的值,所以它们是重新出现的数据.问题是,我想获得最新的更新行,这意味着第2行.

我有一个现有的查询,如果表没有ID列,但我仍然需要该列,所以如果有人可以帮我指出我做错了什么,那就太好了.

select col1,
       col2,
       col3,
       max(updated_date)
  from tbl
 order by col1, col2, col3;
Run Code Online (Sandbox Code Playgroud)

上面的查询返回第2行,这是正确的,但我仍然需要ID.

注意:我知道我可以使用另一个根据4列选择ID列的查询来封装上述查询,但由于我正在处理数百万条记录,因此重新查询将使应用程序非常无效.

database oracle

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

database ×1

oracle ×1