第47讲:MySQL的窗口函数

窗口函数

MySQL从8.0版本开始支持窗口函数。

窗口函数的作用类似于查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录。而窗口函数是将结果置于每一条数据记录中。

常见的窗口函数:

序号函数

row_number()函数的介绍

举栗子1:

创建商品表

查询goods 数据表中每个商品分类下价格降序排列的各个商品信息。

    #使用窗口函数查询
    select
    row_number() over(partition by category_id order by price desc) as row_num,
    category_id,category,name,price,stock,upper_time
    from goods;

    row_number()函数,对同一种商品类型标序号。

    over(partition by 分类字段 order by 排序字段 排序方式)

    举栗子2:

    查询商品表中每个商品分类下价格最高的3种商品信息。

      select * from
      (
      select
      row_number() over(partition by category_id order by price desc) as row_num,
      category_id,category,name,price,stock,upper_time
      from goods
      ) t
      where row_num