我有以下MySQL查询,它使用MAX函数来选择max session_date字段:
SELECT user_id, MAX(session_date), value
FROM user_extra
GROUP BY user_id
问题在于,值字段似乎不准确,它似乎从其他日期条目之一获取错误的值数据。有什么想法,为什么我能解决这个问题?
答案 0 :(得分:0)
MySQL的GROUP BY有点奇怪。
您的查询将为每个user_id组返回MAX(session_date)。但是,没有任何内容指定将返回哪个值:您将获得每个user_id组的随机值。
如果您希望每个user_id具有最大session_date的行的值,您将需要另一个查询,如下所示:
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)
答案 1 :(得分:0)
elev