美文网首页
row_number() over(partition by A

row_number() over(partition by A

作者: 不爱吃饭的小孩怎么办 | 来源:发表于2019-12-27 16:11 被阅读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
......

相关文章

网友评论

      本文标题:row_number() over(partition by A

      本文链接:https://www.haomeiwen.com/subject/yxudoctx.html