değerinde gruplandırılmış Bir tablodan 2 sütun seçmek ve her değere bir int değeri atamak istiyorum. Ancak, 1. sütun kimliğinin aynı olan tüm değerler için aynı olmasını istiyorum.SQL Server'da bir Satır Numarası Atama, ancak
2. sütun için, her değerin de numaralandırılmasını istiyorum, ancak ilk sütuna göre bölümlenmiş. Bu parçayı çözdüm ama işe ilk kısmı alamıyorum.
Kullanmakta olduğum test senaryosu. Bunu çalıştırdığınızda
DECLARE @TestTable as Table (Column1 char(1), Column2 char(1))
INSERT INTO @TestTable SELECT 'A','A'
INSERT INTO @TestTable SELECT 'A','B'
INSERT INTO @TestTable SELECT 'A','C'
INSERT INTO @TestTable SELECT 'B','D'
INSERT INTO @TestTable SELECT 'B','E'
INSERT INTO @TestTable SELECT 'B','F'
INSERT INTO @TestTable SELECT 'B','G'
INSERT INTO @TestTable SELECT 'B','H'
INSERT INTO @TestTable SELECT 'C','A'
INSERT INTO @TestTable SELECT 'C','B'
INSERT INTO @TestTable SELECT 'C','C'
SELECT
Row_Number() OVER (Partition BY Column1 ORDER BY Column1) as Column1_ID,
Column1,
Row_Number() OVER (Partition BY Column1 ORDER BY Column1, Column2) as Column2_ID,
Column2
FROM @TestTable
, Column2_ID değerler doğrudur, ama ben şöyle Column1_ID olmak için değerleri istiyorum.
Column1_ID Column1 Column2_ID Column2
1 A 1 A
1 A 2 B
1 A 3 C
2 B 1 D
2 B 2 E
2 B 3 F
2 B 4 G
2 B 5 H
3 C 1 A
3 C 2 B
3 C 3 C
+1 'partition' istemiyoruz dışında, aksi hepsi "1" değeriyle ortaya çıkıyor: http://www.sqlfiddle.com/#!6/d41d8/1829 – mellamokb
Yup, sadece kaldırılmam gerektiğini fark ettim: http://www.sqlfiddle.com/#! 6/d41d8/1832 – Andrew
Bu çözümü denedim (ilk yayınladığınız gibi) ve işe yaramadı. Partinin isteğe bağlı olduğunu bilmiyordum. Teşekkürler. Bu tam ihtiyacım olan şeyi yapar. –