## Assign sequence numbers that reset for each policy

Solved
Frequent Contributor
Posts: 100

# Assign sequence numbers that reset for each policy

I can use the monotonic() function to assign a sequence number for each row. But I want it to reset at each new POLICY_NO.

How can I accomplish this?

 POLICY_NO WANT 1 1 1 2 1 3 1 4 1 5 1 6 1 7 2 1 2 2 2 3 3 1 4 1 4 2 4 3 4 4 4 5 4 6 5 1 5 2

Accepted Solutions
Solution
‎10-21-2016 07:29 AM
Super User
Posts: 9,599

## Re: Assign sequence numbers that reset for each policy

Use datastep, easier:

```data want;
set have;
by policy_no;
retain want;
if first.policy_no then want=1;
else sum(want,1);
run;```

All Replies
Solution
‎10-21-2016 07:29 AM
Super User
Posts: 9,599

## Re: Assign sequence numbers that reset for each policy

Use datastep, easier:

```data want;
set have;
by policy_no;
retain want;
if first.policy_no then want=1;
else sum(want,1);
run;```
Frequent Contributor
Posts: 100

Many thanks!

Posts: 3,852

## Re: Assign sequence numbers that reset for each policy

@rw9 Does "else sum(want,1);" work in a data step?

@EinarRoed it may also be written.

``````if first.policy_no then seq = 0;
seq + 1;``````
Super User
Posts: 9,599

## Re: Assign sequence numbers that reset for each policy

Nope, just a typo.  Could do:

```data want;
set have;
by policy_no;
retain want;
want=ifn(first.policy_no,1,sum(want,1));
run;```

Thats probably easier.

☑ This topic is solved.