Сгруппировать в SQL запросе поля по имени персонажа и вывести только записи с минимальной датой. Как сделать?

Есть таблица

name, date, price
Слон, 21-06-2021, 5000
Слон, 22-06-2021, 7500
Мартышка, 21-06-2021, 4000
Мартышка, 22-06-2021, 3900
Кот, 21-06-2021, 11200
Кот, 22-06-2021, 8700

Нужно сгруппировать по имени персонажа и вывести поле суммы с минимальной для персонажа даты, чтобы получилось:

Слон, 21-06-2021, 5000
Мартышка, 21-06-2021, 4000
Кот, 21-06-2021, 11200

Пробовал в HAVING написать условие min(date) = date и не получилось так сделать. Как получить нужный результат?


Ответы (1 шт):

Автор решения: Akina
SELECT *
FROM table t1
WHERE NOT EXISTS ( SELECT NULL
                   FROM table t2
                   WHERE t1.name = t2.name
                     AND t1.`date` < t2.`date` )
→ Ссылка