Dier_Sergio_Great
@Dier_Sergio_Great
Увлеченный человек

Как получить поле для максимального значения другой группированной строки GROUP BY в MySQL?

SELECT p.*,   max(h.date), h.status
FROM product p , history h
WHERE p.id = h.prod_id
GROUP BY h.date;

Как сделать так чтобы колонка h.status отображалась той строки где максимальная дата колонки h.date.
Но вместо этого колонка h.status выводится из строк в которых дата НЕ максимальная. А надо чтобы h.status был для максимальной даты.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Наачиная с MySQL 8.0.14 Вы можете использвать LATERAL:
select * 
from a,
lateral (select * from b where b.a_id = a.id order by d desc limit 1) m;

https://sqlize.online/sql/mysql80/e146f8c70b74a858...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@pantsarny
А до 8.0 можете сделать выборку из подзапроса, где будут только max значения
Ответ написан
Ваш ответ на вопрос

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

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