SQL三种窗口函数对比

1.作用:用于(分组)排序

2.基本语法

<窗口函数> OVER (PARTITION BY <用于分组的列名> ORDER BY <用于排序的列名>)

三者的作用如下:

默认是是从小到大排,DESC是由大到小

函数说明
ROW_NUMBER为表中的每一行分配一个序号,可以指定分组(也可以不指定)及排序字段(连续且不重复)
DENSE_RANK根据排序字段为每个分组中的每一行分配一个序号。排名值相同时,序号相同,序号中没有间隙(1,1,1,2,3这种),即重复不占位
RANK

根据排序字段为每个分组中的每一行分配一个序号。排名值相同时,序号相同,但序号中存在间隙(1,1,1,4,5这种),重复占位

举例:

我们来看RANK()DENSE_RANK()ROW_NUMBER()三者的差异:

SELECT
 *,
 RANK() OVER ( PARTITION BY 科目 ORDER BY 得分 DESC) AS RANK_排名 ,
 DENSE_RANK() OVER ( PARTITION BY 科目 ORDER BY 得分 DESC) AS DENSE_RANK_排名 ,
 ROW_NUMBER() OVER ( PARTITION BY 科目 ORDER BY 得分 DESC) AS ROW_NUMBER_排名
FROM
 成绩单

结果对比如下:

图片

参考:

SQL数据分析实战:好用的窗口函数

设计步骤: 1、语音信号的采集 利用Windows下的录音机录制一段自己的话音,或采用其它软件截取一段音乐信号,然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。 2、语音信号的频谱分析 在Matlab中,可以利用函数FFT对信号进行快速傅立叶变换,得到信号的频谱特性,要求学生首先画出语音信号的时域波形,然后对语音信号进行频谱分析。 3、对语音信号分别加入正弦噪声和高斯白噪声,使信噪比为(学号)dB,画出加噪信号的时域波形和频谱图;关于噪声信号,噪声类型分为如下几种:(1)白噪声;(2)单频噪声(正弦干扰);(3)多频噪声(多正弦干扰);(4)其他干扰,如低频、高频、带限噪声,或chirp干扰、充激干扰。 4、设计数字滤波器,并画出其频率响应。 对叠加噪声前后的信号进行频谱分析,确定降噪的滤波器指标;或者根据如下给定的滤波器性能指标: (1) 低通滤波器的性能指标: =1000Hz, =1200Hz, =1dB, =100dB; (2) 高通滤波器的性能指标: =4800Hz, =5000Hz, =100dB, =1dB. (3) 带通滤波器的性能指标: =1200Hz, =3000Hz, =1000Hz, =3200Hz, =100dB, =1dB。 采用窗函数法设计上面要求的3种滤波器,并画出滤波器的频率响应; 5、用滤波器对信号进行滤波 用自己设计的滤波器对加噪信号进行滤波,画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化; 6、回放语音信号,分析滤波前后的语音变化,验证滤波效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值