Это потому, что ваш запрос неверен
MAX является агрегатной функцией и получает макс. значение из fecha_hora_carga
, это не даст вам соответствующего идентификатора, оно просто получит максимальное значение, хранящееся в столбце fecha_hora_carga
, а не в строке.
См. следующий пример:
mysql>CREATE TABLE test_group_by (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, val1 INT, val2 INT);`
mysql>INSERT INTO test_group_by (val1, val2) VALUES(10,1), (6, 1), (18, 1), (22, 2), (4, 2);
mysql> SELECT * FROM test_group_by;
+----+------+------+
| id | val1 | val2 |
+----+------+------+
| 1 | 10 | 1 |
| 2 | 6 | 1 |
| 3 | 18 | 1 |
| 4 | 22 | 2 |
| 5 | 4 | 2 |
+----+------+------+
mysql> SELECT id, MAX(val1) FROM test_group_by GROUP BY val2;
+----+-----------+
| id | MAX(val1) |
+----+-----------+
| 1 | 18 |
| 4 | 22 |
+----+-----------+
Как видно из примера, это упрощенное представление вашей таблицы. Функция MAX не получает запись, только макс. Значение всех записей в таблице. Но ваш запрос также запрашивает идентификатор, он просто составляет его (какой идентификатор не может быть точно сказано).