我有一个使用MAX函数选择最大session_date场以下MySQL查询:MySQL的SELECT MAX,等领域有着错误的价值观
SELECT user_id, MAX(session_date), value
FROM user_extra
GROUP BY user_id
与它的问题是,值字段似乎并没有被准确,它似乎从其他日期条目之一中获取错误的值数据。任何想法,为什么这是我怎么能解决这个问题?
我有一个使用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
,我没有看到你的代码有什么不同。仍然做同样的事情 – Ahmed
什么价值? –
它在*中,随意用列替换* ... – peufeu
我不这么认为。*将从foo中获取不包含值的数据。 –