【SQL】SQL常见窗口函数整理汇总大全(用到over的场景)
〇、概述
1、常用网站
SQL窗口函数:https://blog.csdn.net/liangmengbk/article/details/124253806
2、介绍
像聚合函数一样对一组数据进行分析并返回结果
3、与聚合函数的不同
聚合函数将一组数据汇总成单个结果,窗口函数为每一行数据都返回一个结果

一、窗口函数组成
(一)语法
窗口函数() over(partition by xxx order by yyy frame_clause)
frame_clause:框架子句,即窗口范围

(二)标识窗口-over
OVER子句用于指定一个数据分析的窗口,表明是一个窗口函数
括号内为空,表示将所有数据作为一个分组进行汇总
(三)分区-PARTITION BY
PARTITION BY用于定义分区,类似于查询语句中的GROUP BY子句
(四)排序-ORDER BY
ORDER BY用于指定分区内数据的排序方式,类似于查询语句中的ORDER BY子句
(五)指定窗口大小
frame_clause选项用于指定一个移动的分析窗口
窗口函数不再基于分区进行分析,而是基于窗口内的数据进行分析。

ROWS表示以数据行为单位计算窗口的偏移量,RANGE表示以数值(例如10天、5km等)为单位计算窗口的偏移量。
frame_start和frame_end分别定义窗口的起始位置和结束位置
窗口大小选项的定义:

如:
ROWS
RANGE INTERVAL '5' DAY PRECEDING
BETWEEN UNBOUNDED PRECEDING
AND
CURRENT ROW
二、窗口函数分类
(一)聚合窗口函数
常见的聚合函数可以做窗口函数,如AVG()、SUM()、COUNT()、MAX()以及MIN()等
(二)排序窗口函数
对数据进行分组排名,包括ROW_NUMBER()、RANK()、DENSE_RANK()、PERCENT_RANK()、CUME_DIST()以及NTILE()等函数。
使用窗口函数按照dt升序进行排序
row_number 排序结果是 1、2、3、4……
rank 排序结果是 1、2、2、4……
dense_rank 排序结果是 1、2、2、3……
(三)取值窗口函数
用于返回指定位置上的数据行,包括FIRST_VALUE()、LAST_VALUE()、LAG()、LEAD()、NTH_VALUE()等函数。
如:NTH_VALUE(use_time,2) OVER(PARTITION BY exam_id ORDER BY use_time ASC) AS min_use_time
【SQL】SQL常见窗口函数整理汇总大全(用到over的场景)的更多相关文章
- MySQL数据库增删改查SQL语句(2018整理集合大全)
查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 cre ...
- 详解SQL操作的窗口函数
摘要:窗口函数是聚集函数的延伸,是更高级的SQL语言操作,主要用于AP场景下对数据进行一些分析.汇总.排序的功能. 本文分享自华为云社区<GaussDB(DWS) SQL进阶之SQL操作之窗口函 ...
- SQL Server常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...
- Ms sql行转列。汇总
SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 ...
- SQL调用系统存储过程整理
SQL系统存储过程用法整理: xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报 ...
- SQL Server 后续去除功能汇总
原文:SQL Server 后续去除功能汇总 功能更新去除汇总 字段类型 在 Microsoft SQL Server 的未来版本中将删除 ntext.text 和 image 数据类型. 请避免在新 ...
- LINQ to SQL 的常见异常及解决办法
Ø 简介 本文主要介绍 LINQ to SQL 中常见的异常,以及对应的解决办法.包括以下内容: 1. 左连接情况下,右表非空类型字段可能抛出异常 1. 左连接情况下,右表非空类型字段可能抛 ...
- SQL Server 常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 整数类型 int 存储范围是-2,147,483,648到2,147,483,6 ...
- SQL中常见语句
SQL中常见语句笔记: --替换字段中的回车符和换行符 ) ), '') --删除表命令 DROP TABLE [dbo].[MGoods_Test] --删除表中数据命令 DELETE FROM [ ...
- SQL SERVER常见等待——解决会话等待产生的系统问题
SQL SERVER——解决会话等待产生的系统问题 转自: https://blog.csdn.net/z_cloud_for_SQL/article/details/55051215 版权声明:SQ ...
随机推荐
- 尝试阅读理解一份linux shell脚本
以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16721350.html 从头一二去阅读语法和命令说明 ...
- 谷歌MapReduce经典论文翻译(中英对照)
MapReduce: Simplified Data Processing on Large Clusters(MapReduce: 简化大型集群下的数据处理) 作者:Jeffrey Dean and ...
- 11. 第十篇 网络组件flanneld安装及使用
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483834&idx=1&sn=b04ec193 ...
- MySQL 自增字段取值
1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表,auto_increment_increment设为10,AUTO_INCREMENT主键起始值设为9, 当他插入数据的时候,发现主键值 ...
- win10系统应用商店打开后无法联网 代码: 0x80131500 的解决办法
官方提供的建议网址: https://answers.microsoft.com/zh-hans/windows/forum/all/代码/cbbe7aaf-8f66-4779-89c8-3c74f5 ...
- 货币转换I
A=input() if A[0] in ['U','u']: RMB=(eval(A[3:]))*6.78 print("RMB{:.2f}".format(RMB)) else ...
- Monaco Editor 中的 Keybinding 机制
一.前言 前段时间碰到了一个 Keybinding 相关的问题,于是探究了一番,首先大家可能会有两个问题:Monaco Editor 是啥?Keybinding 又是啥? Monaco Editor: ...
- Sentinel安装教程【Linux+windows】
一.Sentinel的简介 Sentinel是阿里巴巴出品的一款流控组件,它以流量为切入点,在流量控制.断路.负载保护等多个领域开展工作,保障服务可靠性. 如果你学过netflix公司旗下的Hystr ...
- ubuntu20.04 利用xrandr命令修改多显示器分辨率
问题描述 笔记本是ThinkPad X1 Extreme Gen3 4K屏,外接了一个27寸的1080P显示器.目标是让两个显示器的"显示效果"分辨率能一致,就如winwods和m ...
- WiresShark
WireShark 分析数据包技巧 确定WireShark的位置[是否在公网上] 选择捕获接口,一般都是internet网络接口 使用捕获过滤器 使用显示过滤器[捕获后的数据包还是很复杂,用显示过滤器 ...