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

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

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

Необходимо на каждый ForeignKey оставить одну запись, у которой максимальная дата, остальные удалить.
  • Вопрос задан
  • 641 просмотр
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    MS SQL Server Developer
    5 месяцев
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
  • Сетевая Академия ЛАНИТ
    Выполнение запросов на языке Transact-SQL
    1 неделя
    Далее
Решения вопроса 2
Можно использовать 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, Python, Telegram
select
*,
ROW_NUMBER() OVER (PARTITION BY ForeignKey ORDER BY Datetime DESC) as RowNum 
from table
where RowNum = 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы