美文网首页
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