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