Мне нужно выбрать максимальные суммы в одном столбце для общего идентификатора в другом столбце. В столбце report_id может быть несколько идентификаторов с одинаковыми максимальными значениями last_update.
Структура данных:
+------+-------+--------------------------------------------+
| id | report_id | last_update |
+------+-------------+--------------------------------------+
| 1 | 1 | 2019-01-24 |
| 2 | 1 | 2019-01-24 |
| 3 | 1 | 2019-01-24 |
| 4 | 2 | 2019-01-24 |
| 5 | 3 | 2019-01-23 |
+------+-------+--------------------------------------------+
Проблема, с которой я столкнулся до сих пор, заключается в том, что я не могу изолировать свои результаты просто с помощью report_id. Например, с помощью следующего запроса:
"SELECT report_id, last_update
FROM reports
WHERE last_update=(
SELECT MAX(last_update) FROM reports
WHERE report_id='1'
);
";
Возвращает:
+------+-------+--------------------------------------------+
| id | report_id | last_update |
+------+-------------+--------------------------------------+
| 1 | 1 | 2019-01-24 |
| 2 | 1 | 2019-01-24 |
| 3 | 1 | 2019-01-24 |
| 4 | 2 | 2019-01-24 |
+------+-------+--------------------------------------------+
Так что это почти правильно, но оно также включает report_id 2, потому что оно также имеет значение MAX 2019-01-24 в last_update.
Что мне действительно нужно сделать, это выбрать все столбцы с параметром report_id, равным 1, а затем выбрать только строки из этого набора результатов с MAX (last_update), но я просматривал каждый наибольший n-й на группу и связанный вопрос на ТАК, и я просто не могу получить это.
Каждый раз, когда я добавляю MAX в запрос, это, кажется, сводит на нет тот факт, что я пытаюсь изолировать и report_id.