MAX()函数无法正常工作

Wil*_*ill 1 mysql sql select group-by max

我已经创建了sqlfiddle,试图了解这个http://sqlfiddle.com/#!2/21e72/1

在查询中,我已经max()在compiled_date列上放了一个但是推荐列仍然是错误的 - 我假设需要以某种方式在第3行插入一个select语句?

我已经尝试过以下评论者提供的示例,但我认为我只需要从基本查询开始理解这一点.

che*_*525 5

正如其他人所指出的那样,问题在于某些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
Run Code Online (Sandbox Code Playgroud)