yuyee

oracle分组取值

oracle中有rownum伪列,select rownum from t where rownum<3;表示取整个结果集的前2条记录
当时如果要取分组后每个组里的前几条记录,则rownum无法实现,必须使用oracle里的分析函数,比如row_number()over(partition by 分组字段 order by 排序字段),实现分组后编号

select s.*
  from (select row_number() over(partition by p.trader order by p.branch)  rn,p.*
               
          from spotdeal p) s
 where s.rn < 3

posted on 2010-10-25 15:39 羔羊 阅读(486) 评论(0)  编辑  收藏 所属分类: oracle