2016-08-22 6 views
-1

方法スクリーンショットに表示されるようにクエリを作成します。Row_number関数sql

私はID

Select ROW_NUMBER() over (Partition by R.BrandName, R.City order by R.City, R.BrandName) as ID, 

query result

+0

...以下のスクリプトを使ってみてくださいこれは実行時に生成され、単一の結果表の範囲外では一意ではありません。 – Dai

答えて

0

私はあなたが加工へ行によってgruopので、DENSE_RANKを(使用している場合..インクリメンタルために、同一の番号を与えることを持っている必要があると思う():これを試してみてください。

`ROW_NUMBER()は` `IDENTITY`列に代わるものではありませんので、あなたは(` IDENTITY`を意味する) `ID`より良い名前を選択する必要があります

--creating a sample table 
CREATE TABLE dbo.GroupSet 
(ProdDateTime DATETIME, 
BrandName VARCHAR(50), 
[Description] VARCHAR(50), 
City VARCHAR(10)) 

--populatinng data 
INSERT INTO GroupSet 
VALUES ('2016-06-15 16:10:03.000','13856.11','POL','Ak') 
     ,('2016-06-15 14:56:05.000','13856.11','POL','Ak') 
     ,('2016-06-15 15:58:22.000','13856.11','POL','Ak') 
     ,('2016-05-04 01:02:50.000','30205.18','MUR','Ak') 
     ,('2016-05-03 02:15:10.000','30205.18','MUR','Ak') 
     ,('2016-05-03 04:23:10.000','30205.18','MUR','Ak') 
     ,('2016-05-03 03:32:10.000','30205.18','MUR','Ak') 
     ,('2016-06-03 15:31:20.000','30205.18','MUR','Ak') 

--Here is the script and the result you wanted to be in the column ID_DenseRank 
SELECT 
    ROW_NUMBER() over (PARTITION BY R.BrandName, R.City order by R.City, R.BrandName) as ID_RNO, -- ROW_NUMBER() result 
    DENSE_RANK() over (order by R.BrandName, R.City) as ID_DenseRank, -- DENSE_RANK() result 
    R.ProdDateTime, 
    R.BrandName, 
    R.[Description], 
    R.City 
FROM GroupSet R 
+0

私はそれを試してみて、すべての行にIDとして '1'を与えます – Salta

+0

更新されたコードを試してください。私はあなたのデータを試しました。私のクエリの "ID_denseRank"列はあなたに必要なシーケンスを提供します。結果セットに違いを表示するためにrow_numberも含めました。 –

+0

ありがとうございました!!!! – Salta

0

を作成するために、ROW_NUMBER関数を使用これを試してみてください。

Select 
    ROW_NUMBER() over (Partition by R.BrandName,R.Description,R.City order by R.ProdDateTime DESC) as ID, 
    R.BrandName, 
    R.Description, 
    R.City 
FROM Table R 
0

FACodeは何ですか? BrandNameでパーティションを作成したいと思っています。代わりにROW_NUMBERの)

ROW_NUMBER() over (Partition by BrandName order by R.City) as ID 
+0

'FACode'は 'BrandName'ですが、私はそれを変更するのを忘れました – Salta

+0

してください。これはあなたのために正常に動作するはずです。 –

+0

これは以前のクエリと同じ結果を示します – Salta