Self-Join - University of South Carolina

Chapter 3 Supplement
Self-joins Using PROC SQL
1
Self-Joins


Self-joins, or Reflexive Joins are used to
compare values within a data set
Examples typically use equality
operations to create a join
2
2011 SEC Football Scores
Date
Winning
Team
Winning
Score
Losing Team Losing Score
11/19/2011
Alabama
45
Georgia
Southern
21
11/19/2011
Arkansas
44
Mississippi
State
17
11/19/2011
LSU
52
Ole Miss
3
11/19/2011
Tennessee
27
Vanderbilt
21
11/12/2011
South
Carolina
17
Florida
12
3
Self-Joins



Note that USC’s winning score on
November 12 matches Mississippi
State’s losing score on November 19
We can record all such instances using a
reflexive join
The reflexive join can look like an outer
union
4
Self-Join Syntax
proc sql;
select winner.wscore, winner.date,
winner.wteam, loser.date,
loser.lteam
from secscores as winner, secscores
as loser
where winner.wscore=loser.lscore;
quit;
5
Self-Join Syntax
We do not have to use equality operators:
proc sql;
select winner.wscore, winner.date,
winner.wteam, loser.date,
loser.lteam
from secscores as winner, secscores
as loser
where winner.wscore lt loser.lscore;
quit;

6