row_number() over(partition by A

2019-12-27  本文已影响0人  不爱吃饭的小孩怎么办

开始看到这条语句,一脸懵。啥意思呢?
语义这么解读: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
......
上一篇下一篇

猜你喜欢

热点阅读