Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create an internal numbering of occurrences with SQL

How can I create a new column (inCount) with numbering of occurrences in a specific column? Here is an example:

id      name        inCount
1       Orly        1
2       Ernest      1
3       Rachel      1
4       Don         1
5       Don         2
6       Ernest      2
7       Angela      1
8       Ernest      3
9       David       1
10      Rachel      2
11      Sully       1
12      Sully       2
13      Rachel      3
14      David       2
15      David       3
16      Kevin       1
17      Kevin       2
18      Orly        2
19      Angela      2
20      Sully       3
21      Kevin       3
22      Don         3
23      Orly        3
24      Angela      3

Don from id 5 is numbered 2 because Don appears in id 4 too. Don from id 22 is numbered 3 due to the above preceding occurrences.

I use MS SQL SERVER 2008 R2 Express edition.

Thanks.

like image 370
elarrow Avatar asked Jan 18 '23 10:01

elarrow


1 Answers

You could use partition by, like:

select  row_number() over (partition by name order by id) as inCount
,       *
from    YourTable
order by
        id
like image 68
Andomar Avatar answered Jan 27 '23 05:01

Andomar