我创建了 sqlfiddle 来尝试解决这个 http://sqlfiddle.com/#!2/21e72/1
在查询中,我在 compiled_date 列上放置了一个 max()
但推荐列仍然不正确 - 我假设需要在线插入一个 select 语句3 不知何故?
我已经尝试了下面评论者提供的示例,但我认为我只需要从基本查询开始理解这一点。
最佳答案
正如其他人所指出的,问题在于某些选择列既未聚合也未在 group by 子句中使用。大多数 DBMS 根本不允许这样做,但 MySQL 在某些标准上有点宽松......
因此,您需要先找到每个案例的max(compiled_date)
,然后再找到相应的建议。
select r.case_number, r.compiled_date, r.recommendation
from reporting r
join (
SELECT case_number, max(compiled_date) as lastDate
from reporting
group by case_number
) s on r.case_number=s.case_number
and r.compiled_date=s.lastDate
关于mysql - MAX() 函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970538/