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

第一种写法:
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的

本文介绍两种查询数据库中每个车牌号最新记录的方法:一种使用排名函数,另一种利用行号进行筛选,确保返回每辆车牌号最新的地理位置数据。
1221





