Я знаю, что есть много тем, связанных с этим.Я попытался исследовать их, но не смог понять это правильно.
У меня есть следующая таблица lunch_transaction
:
id | user_id | date | due_amount | updated_on
---------------------------------------------------------------------------
1 | 145 | 2018-05-28 12:56:46 | 30.00 | 2018-05-28 12:56:46
2 | 134 | 2018-05-28 13:33:02 | 30.00 | 2018-05-28 13:33:02
3 | 134 | 2018-05-28 13:38:50 | 60.00 | 2018-05-28 13:38:50
4 | 134 | 2018-05-28 13:38:59 | 60.00 | 2018-05-28 13:38:59
5 | 134 | 2018-05-30 13:39:17 | 60.00 | 2018-05-28 13:39:17
6 | 145 | 2018-05-30 15:20:00 | 45.00 | 2018-05-28 15:00:17
Я хочу получить самую последнюю запись даты и времени для каждогоuser.
Следовательно, желаемый вывод должен быть следующим:
145 | 2018-05-30 15:20:00 | 45.00 | 2018-05-28 15:00:17
134 | 2018-05-30 13:39:17 | 60.00 | 2018-05-28 13:39:17
Но я получаю следующий вывод:
145 | 2018-05-30 15:20:00 | 30.00 | 2018-05-28 12:56:46
134 | 2018-05-30 13:39:17 | 30.00 | 2018-05-28 13:33:02
Даже значения столбца не соответствуютта же строка, т.е. кажется, что значения полей в наборе результатов смешаны из разных строк.
Вот мой запрос:
SELECT user_id, MAX(date), due_amount, updated_on
FROM lunch_transaction
GROUP BY user_id
Каким должен быть правильный запрос для достижения желаемого результата?