В последних версиях MariaDB вы можете использовать ROW_NUMBER()
для ранжирования записей по убыванию modified_date
в группах, совместно использующих тот же orders
, и затем фильтровать верхнюю запись по группе:
SELECT *
FROM (
SELECT
t.*,
ROW_NUMBER() OVER(PARTITION BY orders ORDER BY modified_date DESC) rn
FROM mytable t
) x
WHERE rn = 1
В более ранних версиях вы можете использовать коррелированный подзапрос с условием NOT EXISTS
:
SELECT *
FROM mytable t
WHERE NOT EXISTS (
SELECT 1
FROM mytable t1
WHERE t1.orders = t.orders AND t1.modified_date > t.modified_date
)
Или вы можете использовать подзапрос, чтобы получить максимальную дату для группы и присоединиться к ней:
SELECT *
FROM mytable t
WHERE modified_date = (
SELECT MAX(t1.modified_date)
FROM mytable t1
WHERE t1.orders = t.orders
)