码迷,mamicode.com
首页 > 数据库 > 详细

SQL学习之开窗函数-内置函数盘点

时间:2019-09-24 21:12:26      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:常见   bucket   style   idt   定义   int   body   开窗函数   big   

开窗函数

开窗函数提供了跨越行集执行计算的能力,行集中的行通过某种方式与当前查询行联系在一起。

内置开窗函数列表见表-1。注意调用这些函数必须使用开窗函数语法;也就是需要加上OVER子句。

除了这些函数,任何内置和自定义的聚合函数也可以作为开窗函数使用。聚合函数只有当在调用语句后面加上OVER子句后才会当作开窗函数执行,否则他们就是正常的聚合函数。

表1-常见的开窗函数

函数  返回值类型  描述
row_number() bigint 组内当前行的序号,从1开始
rank() bigint 有间隔排名,多个相同排名的行,各行排名与相同排名行中第一行的行号(即row_number)一致
dense_rank()  bigint 无间隔排名, 这个函数讲相同排名行作为一个整体组进行计数
percent_rank()  double precision  当前行的相对排名:(rank -1 )/(total rows -1)
 cume_dist()  double precision  当前行的相对排名:(当前行前面的行数或者当前行的同序行的行数)/(总行数)
 ntile(num_buckets integer)  integer  从1开始到给定参数的整数,将分区内的行尽量均匀分割
 lag(value any [, offset integer [, default any ]])  same type as value 在分区内从当前行向上移动offset行,函数返回的是这行给定的值;如果没有那样的行,则返回默认值;offset和default都是针对当前行的。如果缺省,offset默认为1,default默认为null。
 lead(value any [, offset integer [, default any ]])  same type as value 在分区内从当前行向下移动offset行,函数返回的是这行给定的值;如果没有那样的行,则返回默认值;offset和default都是针对当前行的。如果缺省,offset默认为1,default默认为null。
 first_value(value any)  same type as value  返回窗口的第一行给定的值
 last_value(value any)  same type as value  返回窗口的最后一行给定的值
 nth_value(value anynth integer)  same type as value  返回窗口第nth行给定的值(从1开始数),如果没有第nth行则为null

SQL学习之开窗函数-内置函数盘点

标签:常见   bucket   style   idt   定义   int   body   开窗函数   big   

原文地址:https://www.cnblogs.com/heisenburg/p/11560128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!