## Sorting and assigning 'Sequence Number within each group' in one (minimum) steps

Solved
Regular Contributor
Posts: 210

# Sorting and assigning 'Sequence Number within each group' in one (minimum) steps

Hi all,

I have the following

How is it possible to sort the dataset by 2 variables and assign a Sequence Number in one step?

``````data test;
length division group \$2.;
infile datalines;
input division group;
datalines;
a	t1
b	m2
a	t1
b	m2
a	t2
a	t2
a	t2
b	m2
a	t1
b	m1
b	m1
a	t2

;
run;

proc print data=test; run;``````

I need the following output:

Accepted Solutions
Solution
‎09-20-2017 08:41 AM
PROC Star
Posts: 1,218

## Re: Sorting and assigning 'Sequence Number within each group' in one (minimum) steps

Like this?

``````data test;
input division\$ group\$;
datalines;
a t1
b m2
a t1
b m2
a t2
a t2
a t2
b m2
a t1
b m1
b m1
a t2
;

proc sort data=test;
by division group;
run;

data want;
set test;
by division group;
Seq+1;
if first.group then Seq=1;
run;``````

All Replies
Solution
‎09-20-2017 08:41 AM
PROC Star
Posts: 1,218

## Re: Sorting and assigning 'Sequence Number within each group' in one (minimum) steps

Like this?

``````data test;
input division\$ group\$;
datalines;
a t1
b m2
a t1
b m2
a t2
a t2
a t2
b m2
a t1
b m1
b m1
a t2
;

proc sort data=test;
by division group;
run;

data want;
set test;
by division group;
Seq+1;
if first.group then Seq=1;
run;``````
Regular Contributor
Posts: 210

## Re: Sorting and assigning 'Sequence Number within each group' in one (minimum) steps

Thank you for the quick help!
PROC Star
Posts: 1,218

Posts: 3,167

## Re: Sorting and assigning 'Sequence Number within each group' in one (minimum) steps

There are many ways to do the sorting in SAS, for example

``````proc sort data=test out=want;
by division group;
run;``````

Or:

``````proc sql;
create table want as
select * from test
order by division, group
;
quit;``````

Also, Hash object can also do sort, but it will be overdone for your purpose.

☑ This topic is solved.