Выберите Min ID в разделе - MSSQL t-SQL

Я хотел бы выбрать минимальный идентификатор раздела. Вроде как, как работает density_rank. Мне бы хотелось, чтобы с каждым разделением ассоциировалось уникальное число, но я бы хотел, чтобы этот номер был минимальным первичным ключом в разделе. Вот пример того, что я после.

USE AdventureWorks2012;  
GO  
SELECT '276 or 289 depending on what partition' as 'Min_BusinessEntityID'
  ,s.BusinessEntityID
  ,p.LastName
  ,s.SalesYTD
  ,a.PostalCode
 FROM Sales.SalesPerson AS s   
INNER JOIN Person.Person AS p   
    ON s.BusinessEntityID = p.BusinessEntityID  
INNER JOIN Person.Address AS a   
    ON a.AddressID = p.BusinessEntityID  
WHERE TerritoryID IS NOT NULL   
AND SalesYTD <> 0  
ORDER BY PostalCode, SalesYTD DESC

Пример набора результатов

1 ответ

Решение

Команды MIN для SQL Server принимают предложение OVER():

SELECT MIN(s.BusinessEntityID) OVER (PARTITION BY TerritoryID) AS Min_BusinessEntityID
FROM ...
Другие вопросы по тегам