У меня есть эта таблица с именем Transaction:
Таблица транзакций
И я пытаюсь сделать запрос SQL о доступе, который найдет для каждого продукта самую последнюю связанную дату. Результаты должны выглядеть так: (я хочу увидеть количество, а также дату и название продукта)
Полученные результаты
Спасибо
Попробуйте с row_number, если вы используете MySQL 8.0
row_number
select id, quantity, date from ( select id, quantity, date, row_number() over (partition by product order by date desc) as rn from transaction ) subq where rn = 1
Вы должны group строк по продукту при выборе последней (max) даты:
group
max
select t.product, t.quantity, t.date from transaction t inner join ( select product, max(date) as MaxDate from transaction group by product ) tm on t.product = tm.product and t.date = tm.MaxDate
Рассмотрите возможность фильтрации с помощью подзапроса:
select t.* from transactions t where t.date = ( select max(t1.date) from transactions t1 where t1.product = t.product )