【发布时间】:2021-05-08 17:48:26
【问题描述】:
我想为每个日期(Date)的每个类型(Types)保留最高的报告 ID(Report_ID)
注意:数据列有多个日期,下图仅显示01.01.2021。
问题: t1 是我需要使用的查找表,我的挑战是它不包含供参考的日期列。
select t2.*
from t2
where t1.Report_ID = (select max(t1.Report_ID)
from t1
where t2.Date = ??? and t2.Types = ???
);
t1
| Report_ID | Name | Value |
|---|---|---|
| 1 | Name 1 | Value 1 |
| 2 | Name 2 | Value 2 |
| 3 | Name 3 | Value 3 |
t2
| Date | Types | Report_ID | Name |
|---|---|---|---|
| 01.01.2020 | Type 1 | 1 | Name 1 |
| 01.01.2020 | Type 1 | 2 | Name 2 |
| 01.01.2020 | Type 3 | 3 | Name 3 |
查看
| Date | Types | Name | Value | Report_ID |
|---|---|---|---|---|
| 01.01.2020 | Type 1 | Name 2 | Value 2 | 2 |
| 01.01.2020 | Type 3 | Name 3 | Value 3 | 3 |
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
说的很清楚是SQL。
-
请do not post images of data。您可以查看SQL tag wiki 以查看如何创建可回答的 SQL 问题。
-
@astentx 已更正。谢谢。
-
@MoeAmine 您不需要 t1 中的日期列作为参考,因为您在两个表中都有 report_id。
标签: mysql sql greatest-n-per-group