MySQL SELECT MAX,其他字段有错误的值

时间:2017-12-02 17:12:38

标签: mysql

我有以下MySQL查询,它使用MAX函数来选择max session_date字段:

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

问题在于,值字段似乎不准确,它似乎从其他日期条目之一获取错误的值数据。有什么想法,为什么我能解决这个问题?

2 个答案:

答案 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