如何选择100个唯一值?

时间:2016-10-06 09:09:29

标签: sql oracle greatest-n-per-group

如何从表中选择100个唯一的codenumber,以便对每个独特的codenumber进行观察?

select top 100* from srv.table01 #THIS WONT WORK

table01包含codenumber,date,transtype

示例如下:我想从我的表中获得100个唯一的代码编号,以便包含对这100个唯一代码的所有观察

codenumber    date    transtype
132        09/09/09    Cash
132        09/05/09    Cash
132        09/22/09    Card
132          .
222          .
132        09/23/10    Card
123
311
523
334
132

谢谢

4 个答案:

答案 0 :(得分:0)

select *from (select *from table group by codenumber) where ROWNUM<101;

现在应该可以使用了!

答案 1 :(得分:0)

试试这个:

12C:

    select codenumber
      from srv.table01
  group by codenumber
fetch next 100 rows only

11r2及更早版本:

select *
  from (  select codenumber
            from srv.table01
        group by codenumber)
 where rownumber <= 100

答案 2 :(得分:0)

你是100个代码的所有行吗?如果是这样,那么我认为你所追求的是:

select codenumber, date, transtype
from   (select codenumber,
               date,
               transtype,
               dense_rank() over (order by codenumber) dr
        from   srv.table01)
where  dr <= 100;

这适用于Oracle,我相信它也适用于SQL Server。它还具有仅访问一次表的优点,但是,如果进行获取dense_rank的排序比执行第二次遍历表更加昂贵,则需要根据数据进行测试。

答案 3 :(得分:-2)

我这样得到了!我有100个唯一的代码,我从表中获得了所有记录。感谢您的帮助:)

npm install gulp-postcss autoprefixer es6-promise --save-dev