Hello everyone,
I have a question regarding a left join. I have two tables which look like this:
table1:
| ID | info1 | info2 |
| 1 | xyz | 10 |
| 2 | abc | 20 |
| 3 | def | 30 |
| 4 | ghi | 40 |
table2:
| ID | info3 |
| 1 | A |
| 1 | A |
| 2 | C |
| 2 | C |
| 2 | C |
| 3 | A |
| 3 | A |
| 4 | F |
| 4 | F |
| 4 | F |
I now want to join the information from table 2 to my first table but I would only need info3 once so that my final table looks like this:
desired table:
| ID | info1 | info2 | info3 |
| 1 | xyz | 10 | A |
| 2 | abc | 20 | C |
| 3 | def | 30 | A |
| 4 | ghi | 40 | F |
By simply coding this:
proc sql;
create table test as
select a.*, b.info3
from table1 as a
left join table2 as b
on a.ID=b.ID;
quit;
I get several duplicate rows. I guess I have to distinct the join somewhere, but I am not sure how.
Thank you for your help.
Hi @Jay_Aguilar
Try this:
proc sql;
create table test as
select a.*, b.info3
from table1 as a
left join
(select distinct * from table2) as b
on a.ID=b.ID;
quit;
Best,
Hi @Jay_Aguilar
Try this:
proc sql;
create table test as
select a.*, b.info3
from table1 as a
left join
(select distinct * from table2) as b
on a.ID=b.ID;
quit;
Best,
Thank you very much for your help!!
You're welcome @Jay_Aguilar 😊
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.