select DATE_FORMAT( time_reports.date, '%W'), group_concat(employees.name, ' (', x.total_hours, ' hours)' SEPARATOR ', ' LIMIT 3)
from employees
inner join time_reports on employees.id=time_reports.employee_id
inner join
(
select employee_id, round(hours,2) as total_hours
from time_reports group by employee_id
ORDER BY total_hours DESC
)x on x.employee_id=time_reports.employee_id
group by time_reports.date
x.total_hours должно выводиться 3 максимальных значения. Limit 3 работает, а вот как сделать ORDER BY total_hours DESC что бы работало ( я поставил во второй SELECT но эффекта ноль), если ставить в самом конце, то срабатывает тогда не только на total_hours но и на DATE_FORMAT, а нужно только на total_hours