oracle组内排序

本文介绍如何在Oracle数据库中实现组内排序,通过一个具体的例子展示了如何获取表DEPT_KTIME中每个部门日期最晚的记录。使用ROW_NUMBER()窗口函数进行排序,并结合PARTITION BY子句实现分组。

oracle数据库中已经存在表 DEPT_KTIME:

id,部门,部门某项事件时间

id   dept   ktime

1   技术   2015-07-12

2   生产   2015-10-22

3   后勤   2014-01-03

4   生产   2015-10-25

5   技术   2014-02-23

6   技术   2015-03-29

7   后勤   2015-02-10

8   后勤   2015-05-01

9   后勤   2015-05-12

要求取出每个部门日期最晚的一条记录:

id   dept    ktime

1    技术   2015-07-12

2    生产   2015-10-25

3    后勤   2015-05-12

SQL:

SELECT T.* FROM ( select row_number() over(partition by dept order by ktime DESC ) as num,DEPT ,KTIME from DEPT_KTIME ) T WHERE T.NUM='1'

备注: partiton 翻译:划分。 

posted on 2015-07-16 12:14 Juniors 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/sunyt/p/4650896.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值