来自 澳门威尼斯人注册网站 2019-12-04 16:28 的文章
当前位置: 澳门威尼斯人平台 > 澳门威尼斯人注册网站 > 正文

开窗函数

一个学习性任务:每个人有不同次数的成绩,统计出每个人的最高成绩。

澳门威尼斯人注册网站,1.创建测试表score

oracle称分析函数。

这个问题应该还是相对简单,其实就用聚合函数就好了。

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

与聚合函数相同,都是对行集合进行计算!但,由于group by的原因,每组只返回一个值。前者每组可以返回多个值。

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

2.初始化数据

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

上边这种情况只适用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,即对所有行进行聚合计算

例如 : 1 张三 100

3.将不同班级学生按分数降序排列

例子:  SELECT EmpID,DeptID,PostID, sum(PostID) 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

          查询出来的结果

4.执行结果

  FROM dbo.tbEmps

          两条信息都会输出。

澳门威尼斯人注册网站 1

避免这种情况,可以使用开窗函数。

5.其他分析函数

本文由澳门威尼斯人平台发布于澳门威尼斯人注册网站,转载请注明出处:开窗函数

关键词: