@screameryo

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

Есть таблица c полями
name (text) | dateism (text) | idshare (text)

и данными вида
ваня | 22.06.2009 0:00:00 | 0EEBFCEE7A94BB4BC2256F8800412BAB
саша | 18.08.2015 0:00:00 | 0EEBFCEE7A94BB4BC2256F8800412BAB
маша | 18.08.2015 0:00:00 | 4CEAD91D74FA15FFC2257046004453D0

необходимо получить итоговую выборку
саша | 18.08.2015 0:00:00 | 0EEBFCEE7A94BB4BC2256F8800412BAB
маша | 18.08.2015 0:00:00 | 4CEAD91D74FA15FFC2257046004453D0

т.е. выбрать все уникальные idshare, там где встречается дублирование idshare оставлять самую свежую по dateism.
не могу дойти как правильно составить вопрос.
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
Делаете вложенную таблицу с группировкой по t.idshare и MAX(dateism) и соединяете с основной

select m.idshare, m.dateism, t.text
from (
  select t.idshare, MAX(t.dateism) from tablename as t
  group by t.idshare
) as m
left join tablename as t on m.idshare = t.idshare and m.dateism = t.dateism
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для MySQL 8:
SELECT DISTINCT
       LAST_VALUE(`name`) OVER `win` AS `last_name`,
       LAST_VALUE(`dateism`) OVER `win` AS `last_dateism`,
       `idshare`
  FROM `table`
  WINDOW `win` AS (
    PARTITION BY `idshare`
    ORDER BY `dateism`
    RANGE BETWEEN UNBOUNDED PRECEDING
      AND UNBOUNDED FOLLOWING
  )

Только функцию для сортировки ORDER BY по своей кривой дате придумывайте самостоятельно.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
27 окт. 2020, в 22:07
50000 руб./за проект
27 окт. 2020, в 21:27
20000 руб./за проект
27 окт. 2020, в 20:58
60000 руб./за проект