如何編寫一個查詢,以便在屏幕截圖中顯示它。Row_number函數sql
我用ROW_NUMBER函數創建ID
列
Select ROW_NUMBER() over (Partition by R.BrandName, R.City order by R.City, R.BrandName) as ID,
如何編寫一個查詢,以便在屏幕截圖中顯示它。Row_number函數sql
我用ROW_NUMBER函數創建ID
列
Select ROW_NUMBER() over (Partition by R.BrandName, R.City order by R.City, R.BrandName) as ID,
我認爲你需要通過MACHING行)到gruop並不得不放棄在增量順序相同數量的..如果因此使用DENSE_RANK(而不是ROW_NUMBER()。
嘗試用下面的腳本..
--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
試試這個:
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
你應該選擇比'ID'一個更好的名字(這意味着'IDENTITY'),因爲'ROW_NUMBER()'是不是一個'IDENTITY'列的替代品:它是在運行時生成的,並且在單個結果表範圍之外的任何方式都不是唯一的。 – Dai