对于同一记录,表有多个输入,我需要获得一个列值,其中另一列值对于同一记录是最大值

时间:2017-01-19 13:44:51

标签: sql-server sql-server-2008

我有一个表格GPS,它有3列编号时间位置

表具有相同记录的多个条目,因为设备会将最新位置发送到db。

我需要从数字列中获取所有不同的值,其中时间列具有最新值。

有一种简单的方法吗?

所有的帮助都得到了很多赞赏。

----------------------------------
NUMBER          TIME            LOCATION
----------------------------------
600004  2013-11-21 15:30:41.000 716.845531877897
600004  2013-11-22 15:21:28.000 716.845531877897
600004  2013-11-23 15:36:58.000 716.843840384205
600004  2013-11-24 15:08:53.000 716.848112801147
600004  2013-11-25 15:22:42.000 716.770758576572
600004  2013-11-26 15:16:21.000 716.771869331508
600004  2013-11-27 15:23:07.000 716.850630248914
600004  2013-11-28 15:16:50.000 716.851575132123

1 个答案:

答案 0 :(得分:0)

使用:

ROW_NUMBER() OVER (PARTITION BY number ORDER BY [time] DESC) AS rn,

将其包装在子查询中并过滤:

rn = 1

获取最新的number条记录。