/ / MySQL SELECT MAX, інші поля мають неправильні значення - mysql

MySQL SELECT MAX, інші поля мають неправильні значення - mysql

У мене є наступний запит MySQL, який використовує функцію MAX для вибору максимального поля session_date:

SELECT user_id, MAX(session_date), value
FROM user_extra
GROUP BY user_id

Проблема з нею полягає в тому, що поле значення не здається точним, здається, отримує неправильні дані про значення з однієї з інших записів дат.

Відповіді:

0 для відповіді № 1

GROUP 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