我已经创建了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/

10-16 08:19