SQL-按id表查找最大日期组
下面有一个表,我需要得到最大日期等于2的行SQL-按id表查找最大日期组,sql,oracle,greatest-n-per-group,Sql,Oracle,Greatest N Per Group,下面有一个表,我需要得到最大日期等于2的行 REMUN_ID HISTO_ID DATE_MAJ STATUT 2122 7005 08/27/2014 11:10:23 2 1603 5486 08/27/2014 11:10:21 1 2122 5151 08/27/2014 11:08:36 1 1603 4710
REMUN_ID HISTO_ID DATE_MAJ STATUT
2122 7005 08/27/2014 11:10:23 2
1603 5486 08/27/2014 11:10:21 1
2122 5151 08/27/2014 11:08:36 1
1603 4710 08/27/2014 11:08:32 2
我需要按REMUN_ID获取具有最大日期和组的行
使用此请求的结果
选择remun\u id,max(主要日期)
从历史的高度
按remun_id分组;
结果:
REMUN_ID DATE_MAJ
2122 08/27/2014 11:10:23
1603 08/27/2014 11:10:21
我需要调整请求,从这个结果中只获取statut=2的行
我的目的是得到下面的结果,这是第一个只得到statut为2的子查询
REMUN_ID DATE_MAJ
2122 08/27/2014 11:10:23
PS:如果我使用该条款,我将得到以下结果:
REMUN_ID DATE_MAJ
2122 08/27/2014 11:10:23
1603 08/27/2014 11:08:32
这不是我想要的
有什么建议吗?
多谢各位
select remun_id, date_maj
from (
select r.*,
max(date_maj) over (partition by REMUN_ID) as max_date
from histo_statut_remun r
)
where date_maj = max_date
and statut = 2;
SQLFiddle:SQLServer、Oracle、Postgres、MySQL、DB2、SQLite,什么?你在使用什么?在分组后添加一个
有SUM(statut=2然后1 END的情况下)>0
,我认为在这里使用MAX(date)
是不安全的,如果你想保证每组只有一行,使用row_NUMBER()
更好,请看这里-@Bulat:这取决于hb.sara是否希望看到多行,如果相同的remun_id
有多个日期等于最高日期。