大数据全系列 教程
1869个小节阅读:466.9k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
开窗函数的引入是为了既显示聚集前的数据,又显示聚集后的数据。即在每一行的最后一列添加聚合函数的结果。 开窗用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用group by 子句对数据进行分组,能够在同一行中同时返回行的基础列和聚合列。
聚合函数和开窗函数:
xxxxxxxxxx
select avg(score) from tb_score
开窗函数是将一行变成多行;
xxxxxxxxxx
select name,avg(score) from tb_score group by name
开窗函数可以不使用group by,直接将所有信息显示出来
开窗函数分类:
聚合类型开窗函数 聚合函数(列) OVER([选项])
xxxxxxxxxx
count(colName) over([partition by xx])
聚合类型:count,sum,avg,max,min
排序开窗函数 排序函数(列)OVER(选项),这里的选项可以是ORDER BY子句,也可以是 OVER(PARTITION BY子句 ORDER BY 子句),但不可以是 PARTITION BY 子句。
xxxxxxxxxx
score rn dr rank
100 1 1 1
98 2 2 2
98 3 2 2
97 4 3 4
排序号依次递增,分数相同名次不同
row_number() over([partition by xx][order by xx [desc]])
值同名次同,序号不间断
dense_rank() over([partition by xx][order by xx [desc]])
值同名次同,序号间断
rank() over([partition by xx][order by xx [desc]])
实时效果反馈
1. 关于开窗函数相关描述错误的是:
A avg(score) over(partition by project) as avg_score
全部成绩的平均分。
B row_number()
:排序号依次递增,分数相同名次不同。
C dense_rank()
值同名次同,序号不间断。
D rank()
:值同名次同,序号间断
答案:
1=>A 表示各科成绩的平均分