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

开窗函数

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

内置开窗函数列表见表-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

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

时间: 2024-11-10 14:27:17

SQL学习之开窗函数-内置函数盘点的相关文章

Python学习(五)函数 —— 内置函数 lambda filter map reduce

Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.filter.map.reduce 进行初步的学习. lambda 匿名函数 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值. lambda语句构建的其实是一个函数对象,参考下例来感受下 lambda 匿名函数: 1 def f(i): # 用户自定义返回平方数 2 retur

python基础学习4-函数、内置函数、os模块、time模块

  1       函数 1.1     字符串格式化方法 Python中字符串格式化输出的几种方法: https://www.cnblogs.com/hongzejun/p/7670923.html 字符串格式化另外一种方式format方式 #字符串format()方法 #第一种 import datetime msg = '欢迎光临{name},今天的日期是{today}' msg = msg.format(name = 'zhangsan',today = datetime.datetim

学习python的第十七天(二分法,有名函数,匿名函数,内置函数)

06.04 学习总结 一.二分法 二分法个人理解是一种算法的方式在一个有序的序列,区中间值,把中间值与想要的值进行对比从而一次一次的减少搜索范围举例 #给与一个列表1-100, num_list = [num fornum in range(1,101)] #给予一个num让你在列表中寻找他 mid_num_index = int(len(num_list)/2) mid_num = num_list[mid_num_index] if len(num_list)==1: if num_list

python学习之路-4 内置函数和装饰器

本篇涉及内容 内置函数 装饰器 内置函数 callable()   判断对象是否可以被调用,返回一个布尔值 1 2 3 4 5 6 7 8 9 10 11 num = 10 print(callable(num))   # num不能够被调用,返回False    def f1():     print("name")    print(callable(f1))     # f1可以被调用,返回True    # 输出 False True ?chr()   将十进制整数转换为asc

MySQL学习笔记_7_MySQL常用内置函数

 MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. 3)在程序设计语言如C++中提供的函数,MySQL大部分也提供了,关于MySQL函数的完整信息,请参阅<MySQL参考手册> 一.字符串函数[比较常用,需要掌握] 1. concat(s1,s2,...,sn) #把传入的参数连接成一个字符串 selectconcat('abc','def

Python 学习笔记 -- time模块内置函数及实例

1 import time 2 #时间戳:1970.1.1.08:00:00起到现在的总秒数 3 #-----------------------------Time模块内置函数----------------------------- 4 #time.altzone #返回格林威治西部的夏令时地区的偏移秒数 5 print("夏令时区的偏移秒数:time.altzone %d " % time.altzone) 6 7 print("\n-----------------分

学习13.内容# 1.内置函数二 # 2.闭包

目录 内置函数二 重要的内置函数和匿名函数 闭包 内置函数二 abs 绝对值 返回的都是正数 print([abd(i) for i in lst]) enumerate 枚举 ("可迭代对象","序号的起始值") 默认起始值是0 [(0,1),(1,2),(2,3)] print([i for i in enumerate(lst,10)]) lst = [11,22,33,-44,23,21] new_lst = [] for i in enumerate(ls

Mysql函数(内置函数,自定义函数)

简述 SQL:结构化查询语言,是一门编程语言,是用于管理数据库的编程语言. 元素:数据,数据类型,变量,函数,流程控制,运算符,注释. 注释: 行: # –[空格] 块: /* */ select * from swpu_stu #where id=2; ; select * from swpu_stu -- where id=2; ; 结束符: select * from swpu_stu where id=2\g select * from swpu_stu where id=2\G 可以使

生成器 三元表达式 列表生成式 匿名函数 内置函数

生成器 1.什么是生成器? ? -生成的工具 ? -生成器是一个自定义的迭代器,本质上是一个迭代器. 2.如何实现生成器? -但凡在函数内定义的yield ? -调用函数时,函数体代码不会执行 ? 会返回一个结果,这个结果就是生成器. 3.yield ? -每一次的yield都会往生成器对象中添加一个值. ? -yield只能在函数内定义 ? -yield可以保存函数的暂停状态 yield和return的对比 ? -相同点: ? 返回值的是不限制的: ? -不同点 ? return一次只可以返回

函数-内置函数,匿名函数,嵌套函数,高阶函数,序列化

函数简单说明 # 函数即"变量" # 高阶函数 # a.把一个函数名当做实参传给另一个函数(在不修改被装饰函数的源代码的情况下,为其添加功能) # b.返回值中包含函数名(不修改函数的调用方式) ''' import time def bar(): print("in the bar!") time.sleep(2) def foo(func): start_time = time.time() func() #根据内存地址,执行代码 stop_time = tim