Jeer
@Jeer
уверенный пользователь

Как оставить только последнюю по дате строку в sql?

MS SQL
Есть журнал, плоская таблица:
Id (PK)
ForeignKey
Datetime
Text

Необходимо на каждый ForeignKey оставить одну запись, у которой максимальная дата, остальные удалить.
  • Вопрос задан
  • 484 просмотра
Решения вопроса 2
vabka
@vabka
Токсичный шарпист
Можно использовать ROW_NUMBER:
SELECT Id, ForeignKey, Datetime, Text FROM (
  SELECT
    ROW_NUMBER() OVER(PARTITION BY ForeignKey ORDER BY DateTime DESC) as rn,
    *
  FROM table
  WHERE
    rn = 1
);
Ответ написан
@nozzy
Symfony, Laravel, SQL
select
*,
ROW_NUMBER() OVER (PARTITION BY ForeignKey ORDER BY Datetime DESC) as RowNum 
from table
where RowNum = 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы