By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE mytable(
name VARCHAR(1) NOT NULL
,number INTEGER NOT NULL
,exc INTEGER NOT NULL
,d1 DATE NOT NULL
);
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,1,'2020-02-03');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,2,'2020-02-03');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,3,'2020-02-03');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,4,'2020-02-03');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,1,'2020-02-04');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,2,'2020-02-04');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,3,'2020-02-04');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,1,'2020-02-05');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,2,'2020-02-05');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,3,'2020-02-05');
INSERT INTO mytable(name,number,exc,d1) VALUES ('a',1,4,'2020-02-05');
11 rows affected
select vt.*,dense_rank() OVER(PARTITION BY Name,Number ORDER BY D1 ) AS rn
from mytable vt
order by name, number, d1, exc;
name | number | exc | d1 | rn |
---|---|---|---|---|
a | 1 | 1 | 2020-02-03 | 1 |
a | 1 | 2 | 2020-02-03 | 1 |
a | 1 | 3 | 2020-02-03 | 1 |
a | 1 | 4 | 2020-02-03 | 1 |
a | 1 | 1 | 2020-02-04 | 2 |
a | 1 | 2 | 2020-02-04 | 2 |
a | 1 | 3 | 2020-02-04 | 2 |
a | 1 | 1 | 2020-02-05 | 3 |
a | 1 | 2 | 2020-02-05 | 3 |
a | 1 | 3 | 2020-02-05 | 3 |
a | 1 | 4 | 2020-02-05 | 3 |