如何在不使用函数(min,max等)的情况下从表中选择不同的行?

时间:2013-08-21 10:56:29

标签: sql oracle oracle11g

我最近看到了很多关于此问题的问题,但我认为应该比Group By更容易一个列,并将所选表格的所有其他字段设为Min,{ {1}},Max个函数。例如,我有一个20列的大表。我不认为将19列作为函数是正确的选择。

我尝试了Average,但它也提供了重复值。 同时将select的每个字段都放在Distinct中也不起作用,因为Oracle抱怨:

Group By

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用row_number()功能选择不同的行:

select t.*
from (select t.*,
             row_number() over (partition by <columns that should be different>
                                order by NULL) as seqnum
      from t
     ) t
where seqnum = 1;