BookmarkSubscribeRSS Feed
deleted_user
Not applicable
I have this data:
year v1
2008 x
2008 x
2008 y
2009 x
2009 x
2009 x
2009 y
2009 y

How would I use proc sql to get this?
year v1 count
2008 x 2
2008 y 1
2009 x 3
2009 y 2

Is it possible to get this with proc sql:
v1 2008 2009
x 2 3
y 1 2
3 REPLIES 3
sbb
Lapis Lazuli | Level 10 sbb
Lapis Lazuli | Level 10
Have you looked at the PROC SQL documentation regarding question #1?

For question #2, you should use PROC TRANSPOSE.

Scott Barry
SBBWorks, Inc.

Recommended Google advanced search argument, this topic/post:

proc sql counts site:sas.com
sas_
Fluorite | Level 6
proc sql;
select year,v1, count(v1) as cnt from data group by year,v1;
quit
sas_
Fluorite | Level 6
For this output:
v1 2008 2009
x 2 3
y 1 2



proc sql;
create table l as
select year,v1, count(v1) as cnt from emp group by year,v1;
quit;

proc sort data=l;
by v1;
run;


proc transpose data=l out=l2(drop=_NAME_);
id year;
by v1;
run;

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1203 views
  • 0 likes
  • 3 in conversation