Aracılığıyla paylaş


DENSE_RANK (Transact-SQL)

Bir sonuç satırlarının bölümündeki mertebesini verir küme, tüm boşluklar derecelendirmesi olmayan.Bir satırın rütbe bir artı önce satır, söz konusu gelen farklı ranks sayısı ' dir.

Topic link iconTransact-SQL sözdizimi kuralları

DENSE_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 yan tümce DENSE_RANK işlev uygulandığı bölümlere.PARTITION BY sözdizimi için bkz: yan tümce (Transact-SQL).

  • < order_by_clause >
    DENSE_RANK değerleri bölümüne satır uygulanma sırası belirler.sütun bir tamsayı temsil eden edemiyor <order_by_clause> Bu derecelendirme işlevde kullanılır.

Dönüş Türleri

bigint

Remarks

Bir rütbe aynı bölüm için iki veya daha çok satır 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 , sayı iki sınıflanır.Bu bir, birden çok önce bu satırı gelen ayrı bir satır sayısı.Bu nedenle, DENSE_RANK işlev tarafından döndürülen sayı olmayan boşluklar varsa ve her zaman ardışık ranks sahip.

Tüm sorgu için kullanılan sıralama düzeni, satırları bir sonucunda görünme sırasını belirler.Bu işlem, bölümdeki ilk satırı olarak satır bir olduklarına yok anlamına gelir.

Örnekler

Aşağıdaki örnek verir DENSE_RANK çeşitli konumlarda ürünlerin miktar. Fark ORDER BY içinde OVER yan tümce siparişlerini DENSE_RANK ve ORDER BY ın SELECT Deyim, sonuç kümesi sıralar.

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