TEL:150-0382-3679
新闻资讯 News Center
建站知识 / 公司动态
分组后只获取每组的前n条记录

select *
from  (select  no =row_number() over (partition by userid order by id asc), * from User_Per_Train)t
where no< 2 


ROW_NUMBER()用法

  ROW_NUMBER()说明:返回结果集分区内行的序列号,每个分区的第一行从 1 开始。语法:

ROW_NUMBER () OVER ( [ <partition_by_clause> ] <order_by_clause> ) 。备注:ORDER BY

子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。参数:<partition_by_clause> :

将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。       <order_by_clause>:

确定将 ROW_NUMBER 值分配给分区中的行的顺序。返回类型:bigint 。


OVER(PARTITION BY)函数


介绍开窗函数              
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某

种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一

行。      开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变

化而变化,举例如下:1:over后的写法:       over(order by salary) 按照salary排序进

行累计,order by是个默认的开窗函数   over(partition by deptno)按照部门分区    over

(partition by deptno order by salary) 2:开窗的窗口范围:over(order by salary

range between 5 preceding and 5 following):窗口范围为当前行数据幅度减5加5后的范围内

的。

一站式全网营销,您身边的网络营销顾问,为您一对一私人定制符合您实际需求的网络营销实施方案!
24小时咨询热线:
150-0382-3679