Use função de janela
DENSE_RANK()
com um OVER()
cláusula:DECLARE @tbl TABLE(Column1 INT,Column2 INT,Column3 VARCHAR(100));
INSERT INTO @tbl VALUES(1,1,'A')
,(1,2,'A')
,(1,3,'B')
,(2,1,'A')
,(2,2,'A')
,(2,3,'B')
,(3,1,'A')
,(3,2,'B')
,(3,3,'V');
SELECT *
,DENSE_RANK() OVER(PARTITION BY Column1 ORDER BY Column3) AS ComputedColumn
FROM @tbl;
A
PARTITION BY
irá reiniciar o contador para cada novo valor em column1
, enquanto o ORDER BY
define a classificação. Dica:não cole imagens!
Para sua próxima pergunta, siga meu exemplo para criar um exemplo autônomo que reproduza seu problema e adicione o código que você tentou por conta própria.