MySQL开窗函数

news/2024/6/19 6:24:52 标签: mysql, linq, sql

一、简介

开窗函数也叫窗口函数,在Orachle称作分析函数,共有两类:一类是聚合开窗函数,一类是排序开窗函数;

开窗函数名(字段名) over([PARTITION BY <分组字段>] [ORDER BY <排序字段> [desc]] [FRAME子句])

PARTITION BY 子句:按照指定字段进行分区,两个分区由边界分隔,即所谓的“窗口”,这里的窗口指的是“范围”;如果没有指定那么它把整个结果集作为一个分组;开窗函数在不同的分区内分别执行,在跨越分区边界时重新初始化;

ORDER BY 子句 :按照指定字段进行排序,开窗函数将按照排序后的记录顺序进行编号;可以和PARTITION BY 子句配合使用,也可以单独使用;默认为升序排列;

FRAME 子句:当前分区的一个子集,用来定义子集的规则,通常用来作为滑动窗口使用;

ROWS 语法:

  • ROWS BETWEEN(expr 为指定数值) UNBOUNDED PRECEDING边界是分区中的第一行/N; PRECEDING边界是当前行减去expr的值/expr; FOLLOWING边界是当前行加上expr的值/; CURRENT ROW边界是当前行 ;AND UNBOUNDED FOLLOWING边界是分区中的最后一行;expr PRECEDING;expr FOLLOWING;CURRENTROW
  • ROWS UNBOUNDED PRECEDING/expr PRECEDING/expr FOLLOWING/CURRENT ROW
  • 默认:ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

二、开窗函数与聚合函数的区别?

  • 聚合函数是将多条记录聚合为一条;而开窗函数是每条记录都会执行,有几条记录执行完还是几条
  • SQL标准中允许所有聚合函数作为开窗函数中;聚合函数作为窗口函数,可以在每一行的数据里直观的看到,截止到本行数据,统计数据是多少(最大值,最小值等);同时可以看出每一行数据,对整体统计数据的影响;

三、序号函数

四、分布函数

五、前后函数

六、头尾函数

七、其他函数


http://www.niftyadmin.cn/n/1425218.html

相关文章

python中查看变量类型_python中如何判断一个变量的数据类型

python中如何判断一个变量的数据类型&#xff1f;(原创) 收藏import typestype(x) is types.IntType # 判断是否int 类型type(x) is types.StringType #是否string类型.........--------------------------------------------------------超级恶心的模式&#xff0c;不用记住ty…

php如何选择读取哪台redis_Redis集群详解(上)

前言我们在Redis主从复制的文章中介绍过利用主从节点实现读写分离来扩展主节点的数据读取能力&#xff0c;那么当主节点的写入能力成为瓶颈时&#xff0c;集群便是性能扩展的解决方案之一。Redis Cluster是Redis的分布式解决方案&#xff0c;在3.0版本正式推出&#xff0c;有效…

web用户界面设计 jsf 第三方组件t标签ICEfaces标签

tomcat中部署*.war文件。放到tomcat的webapps中就可以了。启动时的工程名字就是打包文件的名字&#xff0c;如hello.warhttp://localhost:8080/hello/index.jsp可以了。 web用户界面设计更多的组件&#xff1a;一&#xff08;t标签&#xff09;http://myfaces.apache.org/tomah…

如何设置多个图层层叠关系_叠戴饰品才出色!学教科书级法国部落客加强份量感就对了...

▲模特儿佩戴Pandora闪耀星空与蓝月吊饰手链。(图&#xff0f;Pandora提供)陈雅韵&#xff0f;台北报道没有跑趴怎么能叫做年底&#xff01;从圣诞到新年&#xff0c;派对、聚餐不间断&#xff0c;《ET FASHION》「跑趴季」专题&#xff0c;找来达人教穿搭、布置&#xff0c;还…

Linux下查看日志常用命令

一、查看文件前10行 命令使用headhead -n 10 filename 二、查看文件后10行 命令使用tailtail -n 10 filename 三、查看文件第10行 命令使用备注sedsed -n 10 filenameawkawk ‘NR10’ filenamehead、tailhead -n 10 filename | tail -n 1当文件行数小于10时&#xff0c;此时…

git分支开发合并到master_送你一份后端必备的 Git 分支开发规范指南

点击上方 java学习&#xff0c;选择 设为星标优质文章&#xff0c;及时送达Git 是目前最流行的源代码管理工具。为规范开发&#xff0c;保持代码提交记录以及 git 分支结构清晰&#xff0c;方便后续维护&#xff0c;现规范 git 的相关操作。分支管理分支命名master 分支master …

python单位根检验看结果_时间序列的ADF检验(单位根检验)

from statsmodels.tsa.stattools import adfuller我使用的是python的statsmodels。1532680234(1).jpg可以看到里面的参数x&#xff1a;array_like&#xff0c;1维&#xff0c;时间序列maxlag&#xff1a;int型&#xff0c;最大延迟阶数regression&#xff1a;Constant and tren…

测试工程师面试常考题_测试相关

1.介绍一下你们的软件全生命周期&#xff1f; 需求评审->开发计划/测试计划->技术评审->进入开发阶段/测试编写测试用例/测试用例评审->提测/冒烟测试->测试->产品/设计验收->上线->线上回归->观察期 2.如何保障测试质量? 把需求文档理解透彻梳…