MySQL-窗口函数 简单易懂

窗口函数

考查知识点:

• 如何用窗口函数解决排名问题、Top N问题、前百分之N问题、累计问题、每组内比较问题、连续问题。

什么是窗口函数

窗口函数也叫作OLAP(Online Analytical Processing,联机分析处理)函数,可以对数据库中的数据进行复杂分析。

窗口函数的通用语法如下:

<窗口函数>  over(partition by  <用于分组的列名>

order by   <用于排序的列名>)

我们看一下这个语法里每部分表示什么。

(1)<窗口函数>的位置可以放两种函数:

一种是专用窗口函数,比如用于排名的函数,比如rank()、dense_rank()、row_number();

另一种是汇总函数,比如sum()、avg()、count()、max()、min()。

(2)<窗口函数>后面的over关键字括号里的内容有两部分:一个是partition by,表示按某列分组;另一个是order by,表示对分组后的结果按某列排序。

(3)因为窗口函数通常是对where或者group by子句处理后的结果进行操作的,所以窗口函数原则上只能写在select子句中。

SQL的运行顺序:

from 1

where 2

group by 3

having 4 

select 5

基本查询

开窗查询

order by 6

limit 7

窗口函数可以解决这几类经典问题:排名问题、Top N问题、前百分之N问题、累计问题、每组内比较问题、连续问题

这些问题在工作中你会经常遇到,

比如,排名问题,对用户搜索关键字按搜索次数排名、对商品按销售量排名。

再如,领导想让你找出每个部门业绩排名前10的员工进行奖励,这其实就是Top N问题。

再如,要分析复购用户有多少,这类问题属于前百分之N的问题。

再如,公司对各月发放的工资累计求和,医院要经常统计累计患者数,这类问题就是累计问题。

相关推荐

  1. MySQL 窗口函数详解

    2024-01-30 02:56:02       28 阅读
  2. MySQL中的窗口函数

    2024-01-30 02:56:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 02:56:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 02:56:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 02:56:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 02:56:02       20 阅读

热门阅读

  1. 如何评价搜索算法的好坏?多角度解析

    2024-01-30 02:56:02       41 阅读
  2. js深拷贝和浅拷贝经典面试题都有方法可以实现

    2024-01-30 02:56:02       32 阅读
  3. 两个五层决策树和一个十层决策树的区别

    2024-01-30 02:56:02       27 阅读
  4. Python入门指北三

    2024-01-30 02:56:02       35 阅读
  5. Redisson延迟任务

    2024-01-30 02:56:02       36 阅读
  6. ChatGPT的工作原理

    2024-01-30 02:56:02       42 阅读