我已经创建了sqlfiddle来尝试让我的头绕过这个http://sqlfiddle.com/#!2/21e72/1
在查询中,我在compiled_date列上加了一个max()
,但是推荐列仍然不正确-我假设select语句需要以某种方式插入第3行?
我已经尝试了下面的注释者提供的示例,但我认为我只需要从一个基本的查询开始理解它。
最佳答案
正如其他人指出的那样,问题是某些select列既没有聚合,也没有在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/