BookmarkSubscribeRSS Feed
SASPhile
Quartz | Level 8

There are 13 mil records in a dataset. and there is column country_cd. I need to pull 20 records for each country_cd i.e

country_cd list that i'm interested is 001, 840, 124, 875.For each of this country code I need get 20 records.

Any help is appreciated.

2 REPLIES 2
Haikuo
Onyx | Level 15

Hi,

If I understand you correctly, the following code may get you to start:

data _w1/view=_w1;

  set have (where=(country_cd in ('001','840','124','875')));

run;

proc sort data=_w1;

by country_cd;

run;

data want;

  do _n_=1 by 1 until (last.country_cd);

  set _w1;

   by country_cd;

if _n_<=20 then output;

  end;

run;

Haikuo

SASPhile
Quartz | Level 8

I used somethng like this:

    proc sql;

        create table outdata.cntry_20 as

         select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='000'

         union all

         select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='840'      

         union all

         select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='344'

         union all

         select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='392'

         union all

         select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='076';

      quit;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 2 replies
  • 1265 views
  • 0 likes
  • 2 in conversation