Podsumowanie: w tym samouczku dowiesz się, jak używać funkcji SQLite RANK()
do obliczania rang dla wierszy w zestawie wyników zapytania.
Wprowadzenie do funkcji SQLite RANK ()
funkcjaRANK()
jest funkcją okna, która przypisuje rangę do każdego wiersza w zestawie wyników zapytania. Ranga rzędu jest obliczana przez jeden plus liczbę Rang, które są przed nim.,
poniżej przedstawiono składnię funkcji RANK()
:
w tej składni:
- najpierw klauzula
PARTITION BY
dzieli wiersze wyników na partycje. - Po Drugie, klauzula
ORDER BY
określa kolejność wierszy w każdej partycji. - Po Trzecie, funkcja
RANK()
jest stosowana do każdego wiersza w każdej partycji i ponownie inicjowana podczas przekraczania granicy partycji.
te same wartości kolumn otrzymają te same stopnie., Jeśli wiele wierszy ma tę samą rangę, ranga następnego wiersza nie jest następcza. To jest jak Medal Olimpijski, w którym jeśli dwóch sportowców podzieli się złotym medalem, nie będzie srebrnego medalu.,913ee4e2a9″>
Po Trzecie, zapytanie danych z RankDemo
tabela:
Po czwarte, użyj funkcji RANK()
, aby przypisać szeregi do wierszy w zestawie wyników RankDemo
tabela:
oto wyjście:
jak widać wyraźnie na wyjściu, trzeci i czwarty wiersz otrzymują tę samą rangę, ponieważ mają tę samą wartość., Piąty wiersz otrzymuje rangę 5, ponieważ funkcja RANK()
pomija rangę 4.
przykłady funkcji SQLite RANK ()
aby zademonstrować funkcjęRANK()
, użyjemy tabelitracks
z przykładowej bazy danych.,
Korzystanie z funkcji SQLite RANK() z klauzulą ORDER BY przykład
poniższe polecenie używa funkcji RANK()
aby uszeregować utwory według ich długości:
w tym przykładzie pominęliśmy klauzulę PARTITION BY
, dlatego funkcja RANK()
traktuje cały zestaw wyników jako pojedynczą partycję.
Po pierwsze, klauzulaORDER BY
sortuje utwory według ich długości (Milliseconds
kolumna).,
Po drugie, funkcjaRANK()
jest stosowana do każdego wiersza w zestawie wyników, biorąc pod uwagę kolejność utworów według ich długości.,
Używanie funkcji SQLite RANK() z partycją na przykładzie
poniższe polecenie używa funkcji RANK()
do przypisania rangi każdemu utworowi w każdym albumie:
poniższy obrazek pokazuje częściowe wyjście:
w tym przykładzie:
- najpierw klauzula
PARTITION BY
dzieli utwory na albumy. - klauzula
ORDER BY
sortuje utwory według ich długości., - na koniec funkcja
RANK()
przypisuje rangę każdemu utworowi w każdym albumie. Jeśli album się zmieni, funkcjaRANK()
ponownie inicjalizuje wartość rank.
można znaleźć drugi najdłuższy utwór w każdym albumie, używając następującego zapytania:
wyjście jest następujące:
w tym samouczku nauczyłeś się używać funkcji SQLite RANK()
, aby przypisać rangę do każdego wiersza w zestawie wyników.,
- czy ten tutorial był pomocny ?
- YesNo