Verwenden Sie Fensterfunktion DENSE_RANK()
mit einem OVER()
Klausel:
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;
Die PARTITION BY
startet den Zähler für jeden neuen Wert in column1
neu , während ORDER BY
definiert das Ranking.
Hinweis:Keine Bilder einfügen!
Für Ihre nächste Frage folgen Sie bitte meinem Beispiel, um ein eigenständiges Beispiel zu erstellen, das Ihr Problem reproduziert, und fügen Sie den Code hinzu, den Sie selbst ausprobiert haben.