我有以下表和價值觀,我想下面的產量預期輸出如何設置使用行號相同的序列號與2列
declare @TestData table (ID int, sku char(6), product varchar(15))
insert into @TestData values (1 , 'ABDE01' ,'SPA')
insert into @TestData values (2 , 'ABDE01' ,'GRE')
insert into @TestData values (3 , 'ABDE01' ,'RUS')
insert into @TestData values (2 , 'ABAD03' ,'SPA')
insert into @TestData values (4 , 'ABAD03' ,'SPA')
insert into @TestData values (6 , 'ABAD03' ,'SPA')
insert into @TestData values (1 , 'ABAD02' ,'SPA')
insert into @TestData values (2 , 'ABAD02' ,'SPA')
insert into @TestData values (4 , 'ABAD05' ,'ENG')
預期輸出爲:
SKU Product NewRow
ABAD02 SPA 1
ABAD02 SPA 1
ABAD02 ENG 2
ABAD03 SPA 1
ABAD03 SPA 1
ABAD03 SPA 1
ABDE01 SPA 1
ABDE01 GRE 2
ABDE01 RUS 3
我嘗試以下查詢,但它沒有按預期工作,它給了我不同於我想要的
declare @TestData table (ID int, sku char(6), product varchar(15))
insert into @TestData values (1 , 'ABDE01' ,'SPA')
insert into @TestData values (2 , 'ABDE01' ,'GRE')
insert into @TestData values (3 , 'ABDE01' ,'RUS')
insert into @TestData values (2 , 'ABAD03' ,'SPA')
insert into @TestData values (4 , 'ABAD03' ,'SPA')
insert into @TestData values (6 , 'ABAD03' ,'SPA')
insert into @TestData values (1 , 'ABAD02' ,'SPA')
insert into @TestData values (2 , 'ABAD02' ,'SPA')
insert into @TestData values (4 , 'ABAD02' ,'ENG')
SELECT
dt.SKU, dt.Product, NewRow
FROM (SELECT
SKU, Product, --ROW_NUMBER() OVER (PARTITION BY product ORDER BY product) AS RowID,
DENSE_RANK() OVER (PARTITION BY sku,product ORDER BY id) as NewRow
FROM @TestData
) AS dt
但我得到如下結果:
SKU Product NewRow
ABAD02 ENG 1
ABAD02 SPA 1
ABAD02 SPA 2
ABAD03 SPA 1
ABAD03 SPA 2
ABAD03 SPA 3
ABDE01 GRE 1
ABDE01 RUS 1
ABDE01 SPA 1
請告知我在這裏錯過了什麼。謝謝!!
我想感謝所有的答案,並感謝您的時間。最終排序不是必需的,查詢按預期工作。 :) –