第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;

    举栗子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