Udostępnij za pośrednictwem


DENSE_RANK (Transact-SQL)

Zwraca pozycję wiersze na partycji z zestaw wyników, bez żadnych przerw w klasyfikację.Pozycja wiersza jest jeden przesunięta o liczbę różnych rangę dostarczanych przed wierszem danych.

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

  • < partition_by_clause >
    Dzieli zestaw wyników, wyprodukowane przez Z klauzula na partycje, do której zastosowana jest funkcja DENSE_RANK.Aby zapoznać się ze składnią PARTITION BY zobacz W klauzula (języka Transact-SQL).

  • < order_by_clause >
    Określa kolejność, w którym wartości DENSE_RANK są stosowane do wierszy w partycji.Liczba całkowita nie może reprezentować kolumna <order_by_clause> to jest on używany w funkcja klasyfikacji.

Zwracane typy

bigint

Remarks

Jeśli dwa lub więcej wierszy powiązanie do rangi w tej samej partycji, poszczególnych wierszy wiązanej otrzymuje tę samą rangę.Na przykład, jeśli dwóch sprzedawców mają taki sam SalesYTD wartość one są oba uporządkowane jeden. Sprzedawcy z następnego najwyższego SalesYTD jest ujęte w rankingu liczby dwa.Jest to jeden większa niż liczba odrębne wiersze, które przed tego wiersza.W związku z tym liczby zwrócone przez funkcja DENSE_RANK nie ma przerw i nie zawsze miały kolejne pozycje.

Używane dla całych kwerendy kolejność sortowania określa kolejność, w jakiej są wyświetlane wiersze, w wyniku.Oznacza to, wiersz obowiązuje hierarchia ważności jeden numer nie ma być pierwszym wierszem w partycji.

Przykłady

W poniższym przykładzie są zwracane DENSE_RANK ilość produktów w różnych lokalizacjach. Zwróć uwagę, że ORDER BY w OVER Klauzula zamówień DENSE_RANK oraz ORDER BY z SELECT Instrukcja zamówień zestaw wyników.

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