mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

当前位置: mg4377娱乐娱城官网 > mg > 正文

开窗函数

时间:2019-08-31 12:15来源:mg
多个学习性任务:每种人有例外交部次官数的大成,总结出各种人的参天战表。 1.开立测验表score 开窗函数。oracle称深入分析函数。 oracle称解析函数。 以此标题应有依旧相对简单,其

多个学习性任务:每种人有例外交部次官数的大成,总结出各种人的参天战表。

1.开立测验表score

开窗函数。oracle称深入分析函数。

oracle称解析函数。

以此标题应有依旧相对简单,其实就用聚合函数就好了。

create table score(
class_no varchar2(10),      --班级
student_name varchar2(20),  --姓名
score number                --分数
);

与聚合函数一模一样,都以对行集合进行总结!但,由于group by的来头,每组只回去三个值。前面叁个每组能够回到八个值。

与聚合函数一致,都以对行群集进行测算!但,由于group by的来头,每组只回去叁个值。前边叁个每组能够回去四个值。

select id,name,max(score) from Student group by id,name order by name

2.伊始化数据

语法:函数名(列名) over(sql项)

语法:函数名 over

上面这种景色只适用id 和name是逐个对应的,不然查询出来的数量是不得法的。

insert into score(class_no,student_name,score) values('n001','park',99);
insert into score(class_no,student_name,score) values('n001','ning',99);
insert into score(class_no,student_name,score) values('n001','tom',79);
insert into score(class_no,student_name,score) values('n001','cat',87);
insert into score(class_no,student_name,score) values('n001','sandy',95);
insert into score(class_no,student_name,score) values('n002','cake',85);
insert into score(class_no,student_name,score) values('n002','mavom',69);
insert into score(class_no,student_name,score) values('n002','tony',90);
insert into score(class_no,student_name,score) values('n002','lisa',99);
insert into score(class_no,student_name,score) values('n002','linda',67);
insert into score(class_no,student_name,score) values('n003','versy',84);
insert into score(class_no,student_name,score) values('n003','peter',97);
insert into score(class_no,student_name,score) values('n003','train',83);
insert into score(class_no,student_name,score) values('n003','rain',80);

当over参数为null,即对持有行进行联谊总结

当over参数为null,即对负有行举行联谊总结

例如 : 1 张三 100

3.将差别班级学生按分数降序排列

例子:  SELECT EmpID,DeptID,PostID, sum(PostID) OVER(PARTITION BY DeptID,PostID)
  FROM dbo.tbEmps

例子: SELECT EmpID,DeptID,PostID, sum OVER(PARTITION BY DeptID,PostID)
FROM dbo.tbEmps

           2 张三 90

select *
  from (select class_no,
               student_name,
               score,
               rank() over(partition by class_no order by score desc)
          from score) t;

SELECT    ROW_NUMBER() OVER ( ORDER BY PassportID DESC ) AS rowNum

SELECT ROW_NUMBER() OVER ( ORDER BY PassportID DESC ) AS rowNum

          查询出来的结果

4.实践结果

  FROM dbo.tbEmps

FROM dbo.tbEmps

编辑:mg 本文来源:开窗函数

关键词: 函数