一、count(1) over(partition by 列名 order by 列名) :统计分区中各组的行数,partition by 可选,order by 可选sql
二、sum(列名) over(partition by 列名 order by 列名) :统计分区中记录的总和,partition by 可选,order by 可选函数
三、avg(列名) over(partition by 列名 order by 列名) :统计分区中记录的平均值,partition by 可选,order by 可选code
四、min(列名) over(partition by 列名 order by 列名) :统计分区中记录的最小值,partition by 可选,order by 可选排序
五、max(列名) over(partition by 列名 order by 列名) :统计分区中记录的最大值,partition by 可选,order by 可选it
六、rank() over(partition by 列名 order by 列名) :对分区中记录排名,如遇到排名相同则下个会跳跃(例:1,2,2,4,5),partition by 可选,order by 必选io
七、dense_rank(partition by 列名 order by 列名) :对分区中记录排名,如遇到排名相同则连续排序(例:1,2,2,3,4),partition by 可选,order by 必选ast
八、row_number() over(partition by 列名 order by 列名) :排序,无重复值,partition by 可选,order by 必选class
九、ntile(平均分红分数) over(partition by 列名 order by 列名) :partition by 可选,order by 必选 ,n表示将分区内记录平均分红n份,多出的按照顺序依次分给前面的组select
十、first_value(列名) over(partition by 列名 order by 列名) :取出分区中第一条记录的字段值,partition by 可选,order by 可选统计
last_value(列名) over(partition by 列名 order by 列名) :取出分区中最后一条记录的字段值,partition by 可选,order by 可选
十一、first :从DENSE_RANK返回的集合中取出排在最前面的一个值的行
last :从DENSE_RANK返回的集合中取出排在最后面的一个值的行
select job,max(salary) keep(dense_rank first order by salary desc), max(salary) keep(dense_rank last order by salary desc) from emp group by job; keep前面能够是:min,max,sum,avg,count,variance,stddev
十二、lag(列名,取当前上n行数据,当前数据没有上n行数据则返回的默认值) over(partition by 列名 order by 列名) :取出前n行数据,partition by 可选,order by 必选
lead(列名,取当前下n行数据,当前数据没有下n行数据则返回的默认值) over(partition by 列名 order by 列名) :取出后n行数据,partition by 可选,order by 必选
1三、ratio_to_report(a) over(partition by b) :求按照b分组后a的值在所属分组中总值的占比,a的值必须为数值或数值型字段 partition by 可选,order by 不可选
1四、percent_rank() over(partition by 列名 order by 列名) :partition by 可选,order by 必选 所在组排名序号-1除以该组全部的行数-1,排名跳跃排序
1五、cume_dist() over(partition by 列名 order by 列名) :partition by 可选,order by必选 所在组排名序号除以该组全部的行数,注意对于重复行,计算时取重复行中的最后一行的位置
1六、precentile_cont( x ) within group(order by ...) over() :over()中partition by可选,order by 不可选
x为输入的百分比,是0-1之间的一个小数,返回该百分比位置的数据,若没有则返回如下计算值(r):
a=1+( x *(N-1) ) x为输入的百分比,N为分区内的记录的行数
b=ceil ( a ) 向上取整
c = floor( a ) 向下取整
r=a * 百分比位置上一条数据 + b * 百分比位置下一条数据
select ename,job,salary,percentile_cont(0.5) within group(order by salary) over() from emp; select ename,job,salary,percentile_cont(0.5) within group(order by salary) over(partition by job) from emp;
1七、stddev() over():计算样本标准差,只有一行数据时返回0,partition by 可选,order by 可选
stddev_samp() over():计算样本标准差,只有一行数据时返回null,partition by 可选,order by 可选
stddev_pop() over():计算整体标准差,partition by 可选,order by 可选
select stddev(stu_age) over() from student; --计算全部记录的样本标准差 select stddev(stu_age) over(order by stu_age) from student; --计算递加的样本标准差 select stddev(stu_age) over(partition by stu_major) from student; --计算分组的样本标准差 select stddev(stu_age) over(partition by stu_major order by stu_age) from student; --计算分组递加的样本标准差 select stddev_samp(stu_age) over() from student; --计算全部记录的样本标准差 select stddev_samp(stu_age) over(order by stu_age) from student; --计算递加的样本标准差 select stddev_samp(stu_age) over(partition by stu_major) from student; --计算分组的样本标准差 select stddev_samp(stu_age) over(partition by stu_major order by stu_age) from student; --计算分组递加的样本标准差 select stddev_pop(stu_age) over() from student; --计算全部记录的整体标准差 select stddev_pop(stu_age) over(order by stu_age) from student; --计算递加的整体标准差 select stddev_pop(stu_age) over(partition by stu_major) from student; --计算分组的整体标准差 select stddev_pop(stu_age) over(partition by stu_major order by stu_age) from student;--计算分组递加的整体标准差
1八、variance() over():计算样本方差,只有一行数据时返回0,partition by 可选,order by 可选
var_samp() over():计算样本方差,只有一行数据时返回null,partition by 可选,order by 可选
var_pop() over():计算整体方差,partition by 可选,order by 可选
select variance(stu_age) over() from student; --计算全部记录的样本方差 select variance(stu_age) over(order by stu_age) from student; --计算递加的样本方差 select variance(stu_age) over(partition by stu_major) from student; --计算分组的样本方差 select variance(stu_age) over(partition by stu_major order by stu_age) from student; --计算分组递加的样本方差 select var_samp(stu_age) over() from student; --计算全部记录的样本方差 select var_samp(stu_age) over(order by stu_age) from student; --计算递加的样本方差 select var_samp(stu_age) over(partition by stu_major) from student; --计算分组的样本方差 select var_samp(stu_age) over(partition by stu_major order by stu_age) from student; --计算分组递加的样本方差 select var_pop(stu_age) over() from student; --记录全部就的整体方差 select var_pop(stu_age) over(order by stu_age) from student; --计算递加的整体方差 select var_pop(stu_age) over(partition by stu_major) from student; --计算分组的整体方差 select var_pop(stu_age) over(partition by stu_major order by stu_age) from student;--计算分组递加的样本方差
stddev()=sqrt( variance() ) sqrt()--求开方
stddev_samp()=sqrt( var_samp() )
stddec_pop=sqrt( var_pop() )
1九、covar_samp over():返回一对表达式的样本协方差,partition by 可选,order by 可选
covar_pop over(): 返回一堆表达式的整体协方差,partition by 可选,order by 可选
select covar_samp(stu_age,line) over() from student; --计算全部记录的样本协方差 select covar_samp(stu_age,line) over(order by stu_age) from student; --计算递加的样本协方差 select covar_samp(stu_age,line) over(partition by stu_major) from student; --计算分组的样本协方差 select covar_samp(stu_age,line) over(partition by stu_major order by stu_age) from student; --计算分组递加的样本协方差 select covar_pop(stu_age,line) over() from student; --计算全部记录的整体协方差 select covar_pop(stu_age,line) over(order by stu_age) from student; --计算递加的整体协方差 select covar_pop(stu_age,line) over(partition by stu_major) from student; --计算分组的整体协方差 select covar_pop(stu_age,line) over(partition by stu_major order by stu_age) from student; --计算分组递加的整体协方差
20、corr() over() :返回一对表达式的相关系数,partition by 可选,order by 可选
select corr(stu_age,line) over() from student; --计算全部记录的相关系数 select corr(stu_age,line) over(order by stu_age) from student; --计算递加的相关系数 select corr(stu_age,line) over(partition by stu_major) from student; --计算分组的相关系数 select corr(stu_age,line) over(partition by stu_major order by stu_age) from student; --计算分组递加的相关系数
2一、REGR_ (Linear Regression) Functions:这些线性回归函数适合最小二乘法回归线,有9个不一样的回归函数可以使用