Как я могу написать SQL-запрос, чтобы получить набор результатов, получить набор результатов из максимального времени - PullRequest
0 голосов
/ 25 марта 2019
Name       Longititue   latutute        Time
tharindu    79.94148    6.9748404       00:15:47
shane      79.8630765   6.8910388       13:23:24
shane      79.862815    6.8909349       14:41:29
shane      79.8628665   6.8911084       09:39:33
shane      79.8626956   6.890992        11:00:07
shane      79.8628831   6.89099         11:43:00

я хочу получить набор результатов, как показано ниже

shane      79.862815    6.8909349       14:41:29
tharindu    79.94148    6.9748404       00:15:47

как мне написать SQL-запрос, чтобы получить набор результатов, получить набор результатов из максимального времени

Ответы [ 5 ]

0 голосов
/ 25 марта 2019

Вы можете достичь этого, используя CTE (Common Table Expression) и функцию ранжирования.

SQL-запрос:

WITH CTE AS
(
    SELECT Name,Longititue,latutute,Time,DENSE_RANK() OVER(PARTITION BY Name ORDER BY time desc) as RN
    FROM MaxTime
)
SELECT * FROM CTE
WHERE RN = 1
0 голосов
/ 25 марта 2019

Вот способ использования ROW_NUMBER без формального подзапроса:

SELECT TOP 1 WITH TIES
    Name,
    Longititue,
    latutute,
    Time
FROM yourTable
ORDER BY
    ROW_NUMBER() OVER (PARTITION BY Name ORDER BY [Time] DESC);

enter image description here

Демо

0 голосов
/ 25 марта 2019

Вы также можете попробовать использовать коррелированный подзапрос

select * from tablename a
where Time in (select max(Time) from tablename b where a.name=b.name)
0 голосов
/ 25 марта 2019

вы можете использовать коррелированный подзапрос

select t.* from table_name t
 where t.[Time]=( select max([Time]) from table_name t1 where t1.Name=t.Name)
0 голосов
/ 25 марта 2019

Вы можете попробовать использовать ROW_NUMBER оконную функцию.

SELECT Name,Longititue,latutute,[Time]
FROM (
    SELECT *,ROW_NUMBER() OVER(PARTITION BY Name ORDER BY [Time] DESC) rn
    FROM T
)t1
WHERE rn = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...