oracle组内排序

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 翻译:划分。 

原文地址:https://www.cnblogs.com/sunyt/p/4650896.html