Aracılığıyla paylaş


RANK (Transact-SQL)

Her satır bölüm içerisinde bir sonuç mertebesini verir küme.Bir satırın rütbe bir artı önce satır, söz konusu gelen ranks sayısı ' dir.

Topic link iconTransact-SQL sözdizimi kuralları

RANK ( )    OVER ( [ < partition_by_clause > ] < order_by_clause > )

Bağımsız değişkenler

  • < partition_by_clause >
    Sonuç olarak böler küme tarafından üretilen GELEN RANK işlev uygulandığı bölümlere yan tümce. PARTITION BY sözdizimi için bkz: yan tümce (Transact-SQL).

  • < order_by_clause >
    RANK değerleri bölümüne satır uygulanma sırası belirler.Daha fazla bilgi için bkz:ORDER BY yan tümce (Transact-SQL).Bir tamsayı sütun temsil olamaz, <order_by_clause> bir sıralama işlev.

Dönüş Türleri

bigint

Remarks

Iki veya daha çok satır için bir rütbe tedariği birbirine bağlamanın iki, bağlı her satır için aynı mertebeyi alır.Örneğin, aynı üst iki satış temsilcilerinin varsa SalesYTD değeri, bunların her ikisi de bir derecelendirilir.Satışçı olan sonraki en yüksek SalesYTD , daha yüksek derecelendirilir, iki satır olduğundan sayı, üç sınıflanır.Bu nedenle, RANK işlev, her zaman ardışık tamsayılar döndürmez.

Tüm sorgu için kullanılan sıralama düzeni, satırları bir sonucunda görünme sırasını belirler küme.

Örnekler

Aşağıdaki örnek ürün, kendi miktarlarını stoka göre derecelendirir.Satır kümesi bölümlere göre LocationID ve sıralanmış olarak Quantity. Fark ORDER BY içinde OVER yan tümce siparişlerini RANK ve ORDER BY ın SELECT Deyim, sonuç kümesi sıralar.

USE AdventureWorks;
GO
SELECT i.ProductID, p.Name, i.LocationID, i.Quantity
    ,RANK() OVER 
    (PARTITION BY i.LocationID ORDER BY i.Quantity DESC) AS 'RANK'
FROM Production.ProductInventory i 
    INNER JOIN Production.Product p 
        ON i.ProductID = p.ProductID
ORDER BY p.Name;
GO