业务描述:按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=''
AND t2.father_type in('','','','','','','','')
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

oracle 排序 row_number() over(partition by 排序字段)的更多相关文章

  1. hive:数据库“行专列”操作---使用collect_set/collect_list/collect_all & row_number()over(partition by 分组字段 [order by 排序字段])

    方案一:请参考<数据库“行专列”操作---使用row_number()over(partition by 分组字段 [order by 排序字段])>,该方案是sqlserver,orac ...

  2. 去重 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN

    关键字  ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN 按照分组字段进行排序并标编号 ROW_NUMBER() OVER(PARTITIO ...

  3. 数据库“行专列”操作---使用row_number()over(partition by 分组字段 [order by 排序字段])

    测试样例: create table test(rsrp string,rsrq string,tkey string,distan string); '); '); '); '); select * ...

  4. 【Oracle】row_number() over(partition by )函数用法

    row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编 ...

  5. MySql实现Oracle的row_number()over(partition by ... order by ...)

    SELECT IF(t1.id = @id,@rownum := @rownum + 1,@rownum := 1)AS rownum, t1.*, @id := t1.id FROM (SELECT ...

  6. row_number() over (partition by....order by...)用法 分组排序

    row_number() over (partition by....order by...)用法 分组排序 row_number() OVER (PARTITION BY COL1 ORDER BY ...

  7. oracle ROW_NUMBER() OVER(PARTITION BY '分组' ORDER BY '排序' DESC) 用法

    转载:https://blog.csdn.net/dbagaoshou/article/details/51330829 SELECT * FROM ( SELECT ROW_NUMBER() OVE ...

  8. MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能

    以下是个人笔记: 本文是为了理解 row_number() over(partition by )  和实现各种数据库的分组排序功能 select ROW_NUMBER()over( partitio ...

  9. Oracle学习笔记:rank、dense_rank、row_number、ntile等排序算法

    在 oracle 中有很多函数可以实现排序的功能,但是不尽相同.下面一一解说. row_number函数 功能:可实现分组排序,为数据行添加序号,多用于分页查询. 语法:row_number() ov ...

随机推荐

  1. nodejs 学习四 处理回调地狱

    面对下面回调,你面对这样代码,你心里难道不百万只羊驼吗? nodejs 提供了util.promisify方法,来解决这类问题.(类似es6 种是提供了Promise的方法). const fs = ...

  2. springMVC(一): 整体请求过程概述

    首先用户发送请求,DispatcherServlet实现了Servlet接口 获取url请求对应的处理方法,遍历handlerMappings列表,获取对象HandlerExecutionChain( ...

  3. 8.0-uC/OS-III单任务应用

    1.单任务应用 app.c文件: (1).APP_CFG.H 是用于配置的头文件.例如, APP_CFG.H 中包含的#define常量确定了任务优先级,堆栈大小,以及其他特性. BSP.H 是 BS ...

  4. LeetCode-714.Best Time to Buy and Sell Stock with Transaction Fee

    Your are given an array of integers prices, for which the i-th element is the price of a given stock ...

  5. php魔术变量和13个PHP魔术函数

    PHP魔术变量确切地说是PHP魔术常量,不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了.比如说__LINE__放在不同的地方是显示不 ...

  6. linux下修改/etc/profile文件

    inux下修改/etc/profile文件 2017年01月06日 14:30:12 白昙 阅读数:8540 标签: linux 更多 个人分类: linux   通常情况下,/etc/profile ...

  7. 查看win10版本方法,及win10升级方法

    点击左下角开始图标. 找到并点击左下方设置(齿轮形的图案). 点左上方的系统(笔记本电脑图案). 在左下方 点击关于.找到windows规格.   带大家解读Windows10的规格: 专业版功能较多 ...

  8. css中根据不同分辨率设置不同样式

    @media screen and (max-width: ) { .tab__content{width: %} }

  9. vue中$emit 和$on 和$set的用法

    1.$set的用法:给 student对象新增 age 属性 data () { return { student: { name:"里斯'} } } 直接给student赋值不会触发视图更 ...

  10. OpenCV矩形检测

    OpenCV矩形检测 需求:提取图像中的矩形,图像存在污染现象,即矩形区域不是完全规则的矩形. 思路一:轮廓法 OpenCV里提取目标轮廓的函数是findContours,它的输入图像是一幅二值图像, ...