BookmarkSubscribeRSS Feed
deleted_user
Not applicable
My dataset looks like this:

Subject START STARTL END ENDL
1001 10Jan2010 10Jan10 12Jan2010 12Jan10
1001 15Jan2010 15Jan10 17Jan2010 17Jan10
1001 17Jan2010 17Jan10 18Jan2010 18Jan10
1001 19Jan2010 19Jan10 20Jan2010 20Jan10

I want to get min(start) and corresponding startL, max(start) and corresponding startL per subject. How can I do this using proc sql.
3 REPLIES 3
Ksharp
Super User
[pre]
data temp;
input Subject (START STARTL END ENDL) (: date9.);
format START STARTL END ENDL date9.;
datalines;
1001 10Jan2010 10Jan10 12Jan2010 12Jan10
1001 15Jan2010 15Jan10 17Jan2010 17Jan10
1001 17Jan2010 17Jan10 18Jan2010 18Jan10
1001 19Jan2010 19Jan10 20Jan2010 20Jan10
;
run;
proc sql;
select subject,start,startl
from temp
group by subject
having start=min(start)
;
quit;
[/pre]

Ksharp
Patrick
Opal | Level 21
proc sql;
select subject,start,startl,end,endl
from temp
group by subject
having start=min(start) or start=max(start)
;
quit;
deleted_user
Not applicable
Thanks Ksharp and Patrick.
What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1490 views
  • 0 likes
  • 3 in conversation