Как и вы, когда просите стандартный способ сделать это: все ответы, приведенные до сих пор, соответствуют стандарту SQL. Еще один возможный подход в стандартном SQL - использовать оконную функцию. Однако это доступно только в MySQL начиная с версии 8.
select date, name, num
from
(
select date, name, num, max(num) over (partition by date) as max_num
from mytable
) analyzed
where num = maxnum
order by date;
Это читает таблицу только один раз, что может (но не обязательно) ускорить запрос.