SQL检索与最高日期匹配的ID(按另一个字段分组)

时间:2019-07-11 18:36:16

标签: mysql sql group-by

我有以下数据:

enter image description here

我想检索与日期最高的ids匹配的max(folga),并按funcionario_id分组。

这是我想要的输出表,但缺少ID

enter image description here

我该如何实现?

感谢您的关注。

1 个答案:

答案 0 :(得分:1)

一种方法是使用NOT EXISTS

select
  t.funcionario_id, t.folga, t.id
from tablename t
where not exists (
  select 1 from tablename
  where funcionario_id = t.funcionario_id and folga > t.folga
)

或者您可以group by funcionario_id首先获得最大日期(我想这是返回您发布的结果的查询),然后加入表格:

select t.*
from tablename t inner join (
  select funcionario_id, max(folga) folga
  from tablename
  group by funcionario_id 
) g on g.funcionario_id = t.funcionario_id and g.folga = t.folga