【发布时间】:2022-01-07 23:23:45
【问题描述】:
这是我的代码:
proc sql;
create table firstjoin as
select a.*
from want a
left join want3 b
on a.date=b.mindate and a.id=b.id;
quit;
want 是一个表,每个 ID 包含许多行和日期,want3 是一个表,每个 ID 只有一行和日期。
Want 看起来像:
Date | ID | Company | Click
-----------+----+---------+--------
01/01/2021 | 01 | Us | 1
01/01/2021 | 01 | Us | 1
01/01/2021 | 01 | Other | 1
02/01/2021 | 01 | Us | 0
02/01/2021 | 01 | Other | 0
02/01/2021 | 02 | Us | 1
03/01/2021 | 02 | Us | 1
03/01/2021 | 02 | Us | 0
而want3 看起来像:
MinDate | ID
-----------+----
01/01/2021 | 01
02/01/2021 | 02
我想要做的是匹配两个表,因此每个 ID 只显示第一个日期行。该日期是want3 中的日期。结果应如下所示:
Date | ID | Company | Click
-----------+----+---------+--------
01/01/2021 | 01 | Us | 1
01/01/2021 | 01 | Us | 1
01/01/2021 | 01 | Other | 1
02/01/2021 | 02 | Us | 1
由于某种原因,当我运行此连接时,结果看起来像 want,即每个 ID 仍然有很多行和日期。
【问题讨论】:
-
试试
inner join