user16461886
user16461886

Reputation:

How do I merge the results from proc sql count into one table?

I used proc sql to count the number of observations in 4 different tables. Now how do I merge these 4 results so that I get one nice table? Thanks.

Upvotes: 0

Views: 485

Answers (3)

user16461886
user16461886

Reputation:

Proc sql;

Create table counts as

Select count(*) as count, "t1" as source from t1

Union select count(*) as count, "t2" as source from t2

Union select count(*) as count, "t3" as source from t3

Union select count(*) as count, "t4" as source from t4;

Quit;`

Upvotes: 0

Richard
Richard

Reputation: 27498

SQL DICTIONARY.TABLES might be what you want.

Example:

proc sql;
  create table want as
  select libname, memname, nobs
  from dictionary.tables
  where libname = 'SASHELP'
    and upcase(memname) in ('CARS', 'CLASS', 'AIR', 'BASEBALL')
  ;

enter image description here

Upvotes: 2

Stu Sztukowski
Stu Sztukowski

Reputation: 12849

There are many ways to merge tables in SAS, and you can even count the observations all in a single step. Assuming you have four tables with one row and dataset each, you can do a simple merge step. For example:

data count1;
    n_obs1 = 100;
run;

data count2;
    n_obs2 = 200;
run;

data want;
    merge count1 count2;
run;

You could also do everything in a single SQL step.

proc sql;
    create table want as
        select nobs_1, nobs_2
        from (select count(*) as nobs_1 from sashelp.cars)
           , (select count(*) as nobs_2 from sashelp.class)
    ;
quit;

Upvotes: 0

Related Questions