简体   繁体   English

SQL查询,MAX日期,分组依据

[英]SQL query, MAX date, group by

Can someone help me with a sql query? 有人可以帮助我进行SQL查询吗? I'm looking for the most recent date (datum). 我正在寻找最近的日期(基准)。 It has the same OBJID but not the same RADOMGID. 它具有相同的OBJID,但不具有相同的RADOMGID。

BESADR  ARSMEDEL    METOD   DATUM       FNR         BYGGID  OBJID   RADOMGID

bladv   410         spar    20040930    40014686    1       14778   13640

bladv   340         m       19860505    40014686    1       14778   1026

Thanks. 谢谢。

Do a GROUP BY , with MAX to find each OBJID's max datum: MAX进行GROUP BY ,以找到每个OBJID的最大数据:

select OBJID, max(DATUM)
from tablename
group by OBJID

If you want the whole row (with max datum), use NOT EXISTS to exclude older rows: 如果要整行(具有最大原点),请使用NOT EXISTS排除较旧的行:

select *
from tablename t1
where not exists (select 1 from tablename t2
                  where t2.OBJID = t1.OBJID
                    and t2.datum > t1.datum)

Will return both rows if there's a tie. 如果有平局将返回两行。

all newest rows for every RADOMGID 每个RADOMGID所有最新行

select t1.* from yourtable t1
join (
   select radomgid, max(Datum)
   from yourtable t2
   group by radomgid
     ) on t1.radomgid = t2.radomgid 

If you want just the latest, assuming the table is called my_object_list 如果只需要最新版本,则假设该表名为my_object_list

select BESADR, ARSMEDEL, METOD, max(DATUM) DATUM, 
       FNR, BYGGID, OBJID, RADOMGID
from my_object_list mol
Where Objid = '14778'
group by BESADR, ARSMEDEL, METOD, 
       FNR, BYGGID, OBJID, RADOMGID
having max(datum) = mol.datum;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM