SQL排序和选择一个最近的值

Har*_*d W 4 sql sql-server sql-server-2008

我有一个多表并连接每个表.结果是这样的:

     CarId   CarLat   CarLon   Path   Minute   Distance
      325    36.000   37.200    H4      74       250
      344    36.050   37.040    H6      75       500
      365    36.300   37.600    H4      76       750
      311    36.060   37.080    H5      77       800
Run Code Online (Sandbox Code Playgroud)

如你所见,路径有2个H4,我想显示更小的分钟路径.像这样 :

     CarId   CarLat   CarLon   Path   Minute   Distance
      325    36.000   37.200    H4      74       250
      344    36.050   37.040    H6      75       500
      311    36.060   37.080    H5      77       800
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

Adr*_*der 5

您可以使用SQL SERVER ROW_NUMBER来确定这一点.

所以像

;WITH Vals AS (
        SELECT  *,
                ROW_NUMBER() (PARTITION BY Path ORDER BY Minute) RowID
        FROM    Table
)
SELECT  *
FROM    Vals
WHERE   RowID = 1
Run Code Online (Sandbox Code Playgroud)