dense_rank (Transact-SQL)
Satır bölümündeki bir sonuç kümesisıralanmasında herhangi bir boşluk olmadan derecesini verir.Bir satır derecesini satırdan önce söz konusu gelir ayrı dereceleri sayısı artı biri olur.
Sözdizimi
DENSE_RANK ( ) OVER ( [ <partition_by_clause> ] < order_by_clause > )
Bağımsız değişkenler
<partition_by_clause>
Yapımcı sonuç kümesi ayıran from yan tümce tümcesine bölümleri dense_rank işlev uygulandığı.BÖLÜM tarafından sözdizimi için bkz: OVER Yan Tümcesi (Transact-SQL).<order_by_clause>
dense_rank değerler bölümüne satır uygulanma sırası belirler.Bir tamsayı sütun temsil edemez <order_by_clause> bir sıralama işlevkullanılır.
Dönüş Türleri
bigint
Açıklamalar
İki veya daha fazla satır aynı bölüme bir rütbe tedariği birbirine bağlamanın iki, bağlı her satır aynı rütbe alır.Örneğin iki önde gelen satış temsilcilerinin aynı olduğu, SalesYTD değeri, bunlar her ikisi de doğru bir.Satış temsilcisi ile sonraki en yüksek SalesYTD iki numara sınıflanır.Bu biridir bu satırdan önce gelen ayrı satır sayısından daha fazla.Bu nedenle, dense_rank işlev tarafından döndürülen sayılar değil boşluklar var ve her zaman ardışık dereceleri sahiptir.
Tüm sorgu için kullanılan sıralama düzeni satırları bir sonuç görünme sırasını belirler.Bu bölümdeki ilk satırı olmasını bir olduklarına satır yok anlamına gelir.
Örnekler
Aşağıdaki örnek verir DENSE_RANK miktarı ürünlerin çeşitli konumları.Dikkat ORDER BY , OVER yan tümce sipariş DENSE_RANK ve ORDER BY , SELECT deyim orders sonuç kümesi.
USE AdventureWorks2008R2;
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