窗口函数
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