MySQL的SELECT MAX,等领域有着错误的价值观

我有一个使用MAX函数选择最大session_date场以下MySQL查询:MySQL的SELECT MAX,等领域有着错误的价值观

SELECT user_id, MAX(session_date), value 

FROM user_extra

GROUP BY user_id

与它的问题是,值字段似乎并没有被准确,它似乎从其他日期条目之一中获取错误的值数据。任何想法,为什么这是我怎么能解决这个问题?

回答:

MySQL的GROUP BY有点奇怪。

您的查询将为每个user_id组返回MAX(session_date)。但是,没有指定将返回哪个值:您将为每个user_id组获得一个随机值。

如果您想为具有最大session_date每个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)

回答:

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

以上是 MySQL的SELECT MAX,等领域有着错误的价值观 的全部内容, 来源链接: utcz.com/qa/257442.html

回到顶部