TSQL: что я делаю не так с разделом?

ItemID | NumberOfUses | LastMaint | Partition
 0111          1           NULL         1

 0111          1         1/1/2015       2
 0111          2         1/1/2015       2
 0111          3         1/1/2015       2
 0111          4         1/1/2015       2
 0111          5         1/1/2015       2

 0111          1         4/1/2015       3
 0111          2         4/1/2015       3
 0111          3         4/1/2015       3

 0111          1         7/1/2015       4
 0111          2         7/1/2015       4
 0111          3         7/1/2015       4
 0111          4         7/1/2015       4
 0111          5         7/1/2015       4
 0111          6         7/1/2015       4 
 0111          7         7/1/2015       4 
 0111          8         7/1/2015       4 
 0111          9         7/1/2015       4

Я пытаюсь понять, как заставить столбец «Раздел» выглядеть так, как показано выше. (Я добавил пробел между различными группами/разделами, чтобы было легче смотреть).

Я пытался сделать это, используя что-то близкое к приведенному ниже запросу. Я пробовал почти все комбинации столбцов в ROW_NUMBER() OVER()

SELECT [ItemID]
      ,[NumberOfUses]
      ,[LastMaintenance]
      ,ROW_NUMBER() OVER (PARTITION BY ?????????
                            ORDER BY ???????) [Partition]     
    FROM [ItemsHistory]

ORDER BY [Partition]

person default_noob_network    schedule 23.01.2018    source источник


Ответы (1)


Попробуйте DENSE_RANK:

SELECT [ItemID]
      ,[NumberOfUses]
      ,[LastMaintenance]
      ,DENSE_RANK() OVER (PARTITION BY [ItemId] ORDER BY [LastMaintenance]) [Partition]     
FROM [ItemsHistory]
ORDER BY [ItemId], [Partition], [NumberOfUses]
person Vitali    schedule 23.01.2018
comment
Я сомневаюсь, что это слова с большим количеством ItemID - person paparazzo; 24.01.2018
comment
Да, спасибо, моя ошибка. Он должен разделяться по ItemId (если я правильно понимаю вопрос OP) - person Vitali; 24.01.2018