现在的表数据如下: 主要是车牌号,经纬度和创建时间.现要查询出每个车牌号最新的一条
第一种写法:
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的