dkfr.net
当前位置:首页 >> orAClE分组后的整条记录怎么取 >>

orAClE分组后的整条记录怎么取

select a.* from a,(select fid,max(time) time from a group by fid) b where a.fid=b.fid and a.time=b.time

逻辑很简单,但是看下解析之后还是很明白的。Q2。在oracle中有一数据表exam_result(成绩记录表),表中的一条记录描述了“某个班某个学生某次考试的成绩"create table EXAM_RESULT(ID NUMBER(10) not null, --主键CLASSID NUMBER(10) not null, ...

select code,num,price,date,sum_num from ( select code,num,price,date,row_number() over (partition by code order by date desc) rn, sum(num) over (partition by code) sum_num ) a where rn=1

select 产品,max(金额)from 销售记录where 销售日期 = ...group by 产品

先分组group by 字段,然后用分页查询rownum,建多表查询,思路是这样的

SELECT * FROM (SELECT T2.*, ROW_NUMBER() OVER(PARTITION BY MAE_NAME ORDER BY TIME_STAMP_END DESC) AS RN2 FROM (SELECT T1.*, ROW_NUMBER() OVER(PARTITION BY MAE_NAME, PRODUCT, OP, VERSION ORDER BY TIME_STAMP_END DESC) AS RN1 FROM...

使用max函数即可 如emp表中如上数据,要求出每个deptno下最大的sal,用如下语句 select deptno,max(sal) from emp group by deptno;结果如下

你可以首先在查询数据的时候使用排名函数rank()对你的数据进行排名 在查出的结果上再次进行查询,这次的条件可以是排名字段的值为

需要看按照分组条件能分为几组。能分成几组结果就是几条记录。

select * from (select a.*, row_number() over (partition by a.col_a order by create_ts desc) as rn from table1 a ) where rn = 1; -- table1 换成你的表, col_a 换成你的分组列, create_ts 是你的时间戳字段, 如果是字符串需转换为date

网站首页 | 网站地图
All rights reserved Powered by www.dkfr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com