zoukankan      html  css  js  c++  java
  • oracle 排序 row_number() over(partition by 排序字段)

    业务描述:按t.truckId,t.riskCode 分组,每个分组里有分数,取分组中分数最大的那条记录。

    如:A1 B1   5  6    

          A1  B1   5  3

          A1  B2   2  5

          A1  B2   2  1

    已经按 A,B分组了 但是 我需要第一条和第三条数据,就可以用这个row_number() over(partition by  排序字段)降序

    然后取 rowseq = 1 的数据就可以拿到了

    SELECT
         gg.sumScore     AS sumScore,
         gg.numberRisk   AS numberRisk,
         gg.happenTime   AS happenTime
    FROM (
            SELECT
             g.sumScore      AS sumScore,
             g.numberRisk    AS numberRisk,
             g.happenTime    AS happenTime ,
    
            (row_number() over(partition by g.truckId  order by g.sumScore desc) ) as rowseq --分数最大的排在前面
            FROM(
                SELECT
                sum(score)                    as sumScore  ,--分数
                count(t.riskCode)          as numberRisk ,
                max(t.happenTime)      as  happenTime,
                t.truckId                      as  truckId
                FROM
                (
                    SELECT
                        t1.truck_id  truckId,
                        to_char(t1.happen_time,'yyyy-mm-dd hh24:mi:ss')   AS  happenTime,
                        t2.score         As  score,
                        t2.code          As  riskCode
                    FROM  b_risk_event t1
                    INNER JOIN d_dictionary_info t2 ON t1.risk_type = t2.code
                    WHERE t1.happen_time >  SYSDATE-30/(24*60)
                    AND t1.del_flag='0'
                    AND t2.father_type in('1','2','3','5','8','17','18','0')
                    order by t1.happen_time DESC
                ) t
                GROUP BY t.truckId,t.riskCode
                ORDER  BY sumScore DESC,happenTime DESC
            )g
        ) gg
    
       WHERE   gg.rowseq =1
  • 相关阅读:
    vim
    Linux 软链接和硬链接
    常用命令
    linux 二级目录结构
    关于bash shell的理解
    虚拟机网络模式
    安装虚拟机
    date 命令
    使用3种协议搭建yum仓库
    ubuntu update时发生错误
  • 原文地址:https://www.cnblogs.com/lazyInsects/p/9456555.html
Copyright © 2011-2022 走看看