Это очень старый вопрос, но я пришел сюда из-за той же проблемы, поэтому я оставляю его здесь, чтобы помочь другим.
Я пытался оптимизировать запрос, потому что запрос базы данных занимал более 5 минут из-за объема данных. Мой запрос был похож на принятый ответ. Комментарий Пабло подтолкнул меня в правильном направлении, и мой 5-минутный запрос стал 0,016 секунды. Поэтому, чтобы помочь другим пользователям, у которых очень большое время запросов, попробуйте использовать некоррелированный подзапрос .
Примером для OP будет:
SELECT
a.report_id,
a.computer_id,
a.date_entered
FROM reports AS a
JOIN (
SELECT report_id, computer_id, MAX(date_entered) as max_date_entered
FROM reports
GROUP BY report_id, computer_id
) as b
WHERE a.report_id = b.report_id
AND a.computer_id = b.computer_id
AND a.date_entered = b.max_date_entered
Спасибо Пабло за комментарий. Вы спасли меня большое время!