开始看到这条语句,一脸懵。啥意思呢?
语义这么解读:row_number()对记录进行编号,那么是基于什么样的记录呢?
over就表示基于“根据A字段进行分组,分组后再根据B字段进行排序(比如降序)”
最后字段名重命名为xxxx
比如这么一个场景:所有订单按照客户进行分组,并按照客户下的订单的金额倒序排列。
select UserId,TotalPrice,orderTime,ROW_NUMBER() over(partition by UserId order by TotalPrice desc) as rowIndex from OrderInfo
UserId TotalPrice orderTime rowIndex
spring 999.99 2019-12-20 1
spring 888.88 2019-12-21 2
spring 777.77 2019-12-19 3
tuke 1000.00 2019-11-30 1
tuke 999.00 2019-11-20 2
tuke 928.00 2019-12-12 3
......
网友评论