当前位置: 首页 > article >正文

SQL_over_partition_by_order_by

在SQL中,OVER子句通常与窗口函数一起使用,用于定义窗口的规则。PARTITION BY用于将数据分成多个独立的分区,而ORDER BY用于在每个分区内定义数据的排序方式。

窗口函数可以对一组行执行计算,并返回计算结果。这些行与当前行有某种关系,这种关系由OVER子句定义。
基本语法

SELECT column_name,
window_function() OVER (PARTITION BY partition_column ORDER BY order_column)
FROM table_name;

• column_name: 你想要查询的列名。
• window_function: 窗口函数,如SUM(), AVG(), COUNT(), MIN(), MAX(), ROW_NUMBER(), RANK(), DENSE_RANK(), LEAD(), LAG()等。
• PARTITION BY partition_column: 指定用于分区的列。分区内的行将根据这个列的值进行分组。
• ORDER BY order_column: 指定用于排序的列。在每个分区内,行将根据这个列的值进行排序。
示例
假设我们有一个名为sales的表,包含以下列:id, date, salesperson_id, amount。我们想要计算每个销售人员的总销售额,并且想要知道每个销售人员在每个季度的销售额排名。

SELECT salesperson_id,
       date,
       amount,
       SUM(amount) OVER (PARTITION BY salesperson_id) AS total_sales,
       RANK() OVER (PARTITION BY salesperson_id, YEAR(date) ORDER BY amount DESC) AS sales_rank
FROM sales;

在这个例子中:
• SUM(amount) OVER (PARTITION BY salesperson_id): 计算每个销售人员的总销售额。
• RANK() OVER (PARTITION BY salesperson_id, YEAR(date) ORDER BY amount DESC): 计算每个销售人员在每个季度的销售额排名。

注意事项

  1. 窗口函数:窗口函数不会从结果集中消除重复的行,即使它们在计算中使用了相同的行。
  2. 窗口定义:OVER子句定义了窗口的规则,包括分区和排序。
  3. 窗口帧:除了PARTITION BY和ORDER BY,还可以使用ROWS或RANGE子句来定义窗口的帧,这允许你限制窗口函数操作的行数。

http://www.kler.cn/a/320409.html

相关文章:

  • 浅谈云计算01 | 云计算服务的特点
  • Linux下部署Redis(本地部署超详细)
  • Elasticsearch入门学习
  • 如何将 sqlserver 数据迁移到 mysql
  • Redis 优化秒杀(异步秒杀)
  • 反转链表题目
  • go 安装三方库
  • ShiftAddAug:基于乘法算子训练的最新无乘法网络方案 | CVPR‘24
  • Wpf使用NLog将日志输出到LogViewer
  • 8.5 矢量图层点要素分级(Graduated)渲染使用
  • 用 CSS 动画记录宝宝0-280天的变化
  • 传输大咖46 | 还在为如何快速传输大文件困扰?镭速帮你解决
  • 数据集-目标检测系列-老虎检测数据集 tiger>> DataBall
  • 理解JVM中的死锁:原因及解决方案
  • 2015年国赛高教杯数学建模B题互联网+时代的出租车资源配置解题全过程文档及程序
  • 炉石传说辅助攻略—VMOS云手机助攻:国服回归任务要点,哪个辅助更好?
  • TypeScript 设计模式之【享元模式】
  • django项目添加测试数据的三种方式
  • 机器人时代的“触觉革命”:一块小传感器如何颠覆你的认知?
  • 2024最新Python Debugger工具pdb的用法(深度学习项目),了解输入输出的形状大小
  • 【每日一题】LeetCode 2306.公司命名(位运算、数组、哈希表、字符串、枚举)
  • Excel 设置自动换行
  • Qt C++设计模式->组合模式
  • 25 基于51单片机的温度电流电压检测系统(压力、电压、温度、电流、LCD1602)
  • 神经网络(四):UNet图像分割网络
  • iOS 消息机制详解