oracle 查询每组数据中最新的一条数据

现在的表数据如下: 主要是车牌号,经纬度和创建时间.现要查询出每个车牌号最新的一条

 第一种写法:

 SELECT   CARNUM ,CREATEDATE, rank() OVER(PARTITION BY CARNUM ORDER BY CREATEDATE DESC)MAXCAR  FROM  MYTEST

 

 可以看出来,查询的时候 都给加上了序号,然后我们嵌套一层, 查询 MAXCAR 为1的就行

SELECT * from (SELECT   CARNUM ,CREATEDATE, rank() OVER(PARTITION BY CARNUM ORDER BY CREATEDATE DESC)MAXCAR  FROM  MYTEST) where  MAXCAR=1

这样就可以了

----------------------------

不过如上写法如果有重复的数据的话,我们还得去重,例如:

去重之后的效果:

第二种写法:借助 行号

SELECT CARNUM ,CREATEDATE, Row_Number() OVER(PARTITION BY CARNUM ORDER BY CREATEDATE DESC)MAXCAR  FROM  MYTEST

然后我们再取行号为1的

 


版权声明:本文为csdnmuyi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。