自学内容网 自学内容网

SQL窗口函数

SQL窗口函数

1. 简介

说明:窗口函数用于对数据进行复杂的分析和聚合,窗口函数可以在一组行(通常是基于某种排序的行集)上执行计算,并返回每个行的结果。

使用:窗口函数的语法通常包含一个OVER子句,用来定义窗口的范围。OVER子句可以包含以下选项:

  • PARTITION BY: 用于定义分区,即对数据进行分组,每个分组独立进行窗口函数计算。
  • ORDER BY: 用于定义窗口内的排序规则。
  • ROWS BETWEEN 或 RANGE BETWEEN: 用于定义窗口的大小和范围。

2. 分类

  1. 排名函数
    • ROW_NUMBER(): 根据排序规则,为每一行分配一个唯一的排名。类似:类似:1 2 3 4 5 6。
    • RANK(): 根据排序规则,为每一行分配一个排名,相同值的行会有相同的排名,会跳过排名值。类似:1 1 3 4 4 6。
    • DENSE_RANK(): 类似于RANK(),但是没有跳过的排名值。类似:1 1 2 3 4 4 5。
  2. 聚合函数:
    • SUM() OVER (): 在窗口内求和。
    • AVG() OVER (): 在窗口内计算平均值。
    • COUNT() OVER (): 在窗口内计数。
    • MIN() OVER (): 在窗口内找到最小值。
    • MAX() OVER (): 在窗口内找到最大值。
  3. 其它函数
    • LAG(column, offset, default_value) OVER():返回当前行之前的行的指定列的值,offset是偏移量,default是默认值
    • LEAD(column, offset, default) OVER():返回当前行之后的行的指定列的值,offset是偏移量,default是默认值
    • NTILE(): 将结果集分割成指定数量的组。
    • FIRST_VALUE(): 返回窗口内第一行的值。
    • LAST_VALUE(): 返回窗口内最后一行的值。

3. 用法

今天有点累,明天更新每种函数的用法和案例~


原文地址:https://blog.csdn.net/rookie636/article/details/140675317

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!