У мене є наступний запит MySQL, який використовує функцію MAX для вибору максимального поля session_date:
SELECT user_id, MAX(session_date), value
FROM user_extra
GROUP BY user_id
Проблема з нею полягає в тому, що поле значення не здається точним, здається, отримує неправильні дані про значення з однієї з інших записів дат.
Відповіді:
0 для відповіді № 1GROUP BY MySQL трохи своєрідний.
Ваш запит поверне MAX (session_date) для кожної групи user_id. Однак, ніщо не визначає, яке значення буде повернено: ви отримаєте випадкове значення для кожної групи user_id.
Якщо вам потрібне значення для рядка, який має максимальний сеанс_дані для кожного user_id, вам знадобиться інший запит:
SELECT * FROM
(SELECT user_id, MAX(session_date) AS session_date
FROM user_extra GROUP BY user_id) AS foo
JOIN user_extra USING (user_id,session_date)
0 для відповіді № 2
SELECT user_id, MAX(session_date) as date_session, value FROM user_extra GROUP BY user_id