Sql 如何在每个日期获取每个类型的最大ID

Sql 如何在每个日期获取每个类型的最大ID,sql,greatest-n-per-group,Sql,Greatest N Per Group,我想为每个日期(日期)的每种类型(类型)保留最高的报告id(报告id) 注:数据列有多个日期,下面仅显示2021年1月1日 SELECT a.* FROM Table1 a JOIN ( SELECT Date, MAX(Report_ID) as maxID FROM Table1 GROUP BY Date) b ON a.Report_ID = b.maxID WHERE a.Date = '2021-01-01' ORDER BY Dat

我想为每个日期(日期)的每种类型(类型)保留最高的报告id(报告id

注:数据列有多个日期,下面仅显示2021年1月1日

  SELECT a.*
  FROM Table1 a
  JOIN (
    SELECT Date, MAX(Report_ID) as maxID
    FROM Table1
    GROUP BY Date) b 
  ON a.Report_ID = b.maxID
  WHERE a.Date = '2021-01-01'
  ORDER BY Date desc

您可以使用相关子查询:

select t.*
from t
where t.report_id = (select max(t2.report_id)
                     from t t2
                     where t2.date = t.date and t2.type = t.type
                    );