Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 select distinct datetime  [new]
bivilbi
Member

Откуда:
Сообщений: 65
Добрый день.
Есть таблица
id,user_id,last_dt_action

id primary key, ai

(5,'222','2020-11-11 07:00'),
(4,'333','2020-11-11 05:00'),
(3,'444','2020-11-11 01:00'),
(2,'222','2020-11-11 03:00'),
(1,'333','2020-11-11 04:00')

Как можно используя distinct(user_id) и max(last_dt_action) получить

user_id,last_dt_action,id
222,'2020-11-11 07:00',5
333,'2020-11-11 05:00',4
444,'2020-11-11 01:00',3

Т.е. уник юзера, последний ид и дату по все таблице.

Спасибо!
11 ноя 20, 08:13    [22229940]     Ответить | Цитировать Сообщить модератору
 Re: select distinct datetime  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20785
FAQ: Выборка первой/последней записи в группах
11 ноя 20, 08:58    [22229951]     Ответить | Цитировать Сообщить модератору
 Re: select distinct datetime  [new]
bivilbi
Member

Откуда:
Сообщений: 65
Akina,

Блин. Сорри. Забыл...
Спасибо!
13 ноя 20, 15:07    [22231453]     Ответить | Цитировать Сообщить модератору
 Re: select distinct datetime  [new]
Жук в муравейнике
Member

Откуда:
Сообщений: 717
bivilbi,

может быть хочешь в один проход без извращений
select user_id,
       last_dt_action,
       id
from (
         select user_id,
                last_dt_action,
                id,
                dense_rank() over (partition by user_id order by last_dt_action desc) dn
         from (
                  select 5 id, '222' user_id, '2020-11-11 07:00' last_dt_action
                  union all
                  select 4, '333', '2020-11-11 05:00'
                  union all
                  select 3, '444', '2020-11-11 01:00'
                  union all
                  select 2, '222', '2020-11-11 03:00'
                  union all
                  select 1, '333', '2020-11-11 04:00'
              ) a
     ) a2
where a2.dn = 1
17 ноя 20, 14:53    [22233811]     Ответить | Цитировать Сообщить модератору
 Re: select distinct datetime  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20785
Жук в муравейнике, а почему именно DENSE_RANK()? Ну и если MySQL восьмёрка, уж лучше CTE, чем подзапрос, нагляднее...
17 ноя 20, 15:41    [22233885]     Ответить | Цитировать Сообщить модератору
 Re: select distinct datetime  [new]
Жук в муравейнике
Member

Откуда:
Сообщений: 717
Akina,

та без разницы, можно и row_number, главное, что одним проходом. CTE или подзапрос - вопрос вкуса, для простейшего примера подзапрос показался быстрее
17 ноя 20, 21:57    [22234206]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить