PLSQL - 重复记录。尝试独特/独特,但没有工作

时间:2014-06-24 21:59:49

标签: sql oracle

如何根据指定的列获取每行的唯一记录?我使用了唯一的和不同的,并且在我杀死之前查询运行了一个多小时。在实际的查询中,我加入了另外5个表,每个表都有数百万行。

假设我有

ID | Name | Date1    | Date2
1  | Jen  | 1/1/2011 | 1/1/2011
1  | Jen  | 1/1/2011 | 1/1/2011
1  | Jen  | 1/2/2011 | 1/3/2011
2  | Ann  | 1/2/2011 | 1/3/2011
2  | Ann  | 1/2/2011 | 1/3/2011

我如何获得:

ID | Name | Date1    | Date2
1  | Jen  | 1/1/2011 | 1/1/2011
1  | Jen  | 1/2/2011 | 1/3/2011
2  | Ann  | 1/2/2011 | 1/3/2011

2 个答案:

答案 0 :(得分:0)

您可以尝试对这些列使用group by子句来获得唯一的结果。它不是一个完美的解决方案,但可能有助于暂时解决您的问题。

答案 1 :(得分:0)

你的问题由两部分组成(如前所述) 1.性能问题 2.明显的问题

在评论中已经注意到性能问题的潜在原因! 到第二部分:

select distinct t.* from your_table t;

或者如果表格大 - 不同将需要进行大量的排序....

select c1, c2, ... <some other column(s)>
from your_table t1 
where rowid in
(select max(rowid) from your_table  t2 where t1.c1 = t2.c1 and t1.c2 = t2.c2 );

C1,C2,...你的重复列