博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库sql 开窗函数
阅读量:5937 次
发布时间:2019-06-19

本文共 1313 字,大约阅读时间需要 4 分钟。

--本文采用测试,前4个查询为一组,后2个查询为一组,每组前面的查询是为了推出最后的查询

--创建表,为了简化处理,字段类型都采用varchar

create table tb_sc(
uName varchar2(10),
uCourse varchar2(10),
uScore varchar2(10)
);

--插入数据

insert into tb_sc values('张三','语文','80');
insert into tb_sc values('张三','数学','95');
insert into tb_sc values('李四','语文','90');
insert into tb_sc values('李四','数学','70');
insert into tb_sc values('王五','语文','90');
insert into tb_sc values('王五','数学','90');

--查询所有结果如下

select * from tb_sc;

\

 

--①查询每名学生的平均分(展示姓名、平均分)

select uName,avg(uScore) from tb_sc group by uName;

\

--②查询每名学生的平均分并按降序排列(展示姓名、平均分)
select uName,avg(uScore) from tb_sc group by uName order by avg(uScore) desc;

\

--③查询平均分数高于85分的学生(展示姓名、平均分)
select uName,avg(uScore) from tb_sc group by uname having avg(uScore)>'85' order by avg(uscore) desc;

\

--④查询姓名不为张三且平均分数高于85分的学生(展示姓名、平均分)
select uName,avg(uScore) from tb_sc where uName!='张三' group by uname having avg(uScore)>'85' order by avg(uscore) desc;

\

--⑤查询所有学生的信息并将每个学生的各科成绩降序排列
select t.*,row_number() over(partition by t.uname order by t.uscore desc) rm from tb_sc t;

\

 

--⑥查询每个学生考得最好的科目并展示该科目的成绩

select * from (
select t.*,row_number() over(partition by t.uname order by t.uscore desc) rm from tb_sc t
) where rm=1;

\

 

注:"row_number() over(partition by 分组字段 order by 排序字段)"开窗函数通常用于查询所有分组并将各个窗体进行排序

转载于:https://www.cnblogs.com/shan1393/p/9292395.html

你可能感兴趣的文章
html页面显示div源代码
查看>>
基础复习-算法设计基础 | 复杂度计算
查看>>
debian、ubuntu系统下,常用的下载工具
查看>>
带以太网的MicroPython开发板:TPYBoardv201温湿度上传实例
查看>>
如何解压缩后缀名为zip.001,zip.002等的文件
查看>>
OSGI企业应用开发(十二)OSGI Web应用开发(一)
查看>>
Python 以指定概率获取元素
查看>>
微信公众平台图文教程(二) 群发功能和素材管理
查看>>
关于System.Collections空间
查看>>
MPP(大规模并行处理)
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
POJ2348 UVa10368 HDU1525 Euclid's Game【博弈】
查看>>
Java 位运算
查看>>
好用的CSS模块化打包工具CSS-COMBO
查看>>
python 中的字符和字符串
查看>>
C#Winform限制Textbox只能输入数字
查看>>
EL表达式经典用法
查看>>
java.lang.NoClassDefFoundError: javax/mail/Authenticator
查看>>
联想集团涨超7% 杨元庆持股比例升至8.12%
查看>>
各省光伏十三五规划汇总:总规模将超130GW
查看>>