WRank — funkcja skryptu
Funkcja WRank() oblicza wartości wierszy tabeli w skrypcie ładowania i dla każdego wiersza zwraca względną pozycję wartości pola obliczanego w skrypcie ładowania. Obliczając tabelę, funkcja porównuje wynik z wynikiem dla innych wierszy zawierających bieżącą partycję i zwraca klasyfikację bieżącego wiersza w obrębie segmentu.
WRank można użyć tylko w funkcji Window. Funkcja Window musi zawierać typ i wyrażenie sortowania. Klasyfikacja jest stosowana do wyrażenia sortowania.
Składnia:
WRank ([mode[, fmt]])
Typ zwracanych danych: podwójny
Argumenty:
Argument | Opis |
---|---|
mode | Opcjonalnie określa reprezentację liczbową wyniku funkcji. |
fmt | Opcjonalnie określa reprezentację liczbową wyniku funkcji. |
TOTAL |
Jeśli tabela jest jednowymiarowa lub skrypt jest poprzedzony kwalifikatorem TOTAL, funkcja będzie obliczana na całej kolumnie. Jeśli tabela lub równoważnik tabeli zawiera wiele wymiarów pionowych, wówczas bieżąca partycja będzie zawierać tylko wiersze z takimi samymi wartościami we wszystkich kolumnach wymiaru jak bieżący wiersz, ale bez kolumny przedstawiającej ostatni wymiar w kolejności sortowania między polami. |
Klasyfikacja jest zwracana jako wartość podwójna, która w sytuacji, gdy każdy wiersz ma niepowtarzalną klasyfikację, będzie liczbą całkowitą z zakresu od 1 do liczby wierszy w bieżącej partycji.
Jeśli kilka wierszy ma tę samą klasyfikację, reprezentację tekstową i liczbową można kontrolować za pomocą argumentów mode i fmt.
mode
Pierwszy argument, mode, może mieć następujące wartości:
Wartość | Opis |
---|---|
0 (domyślnie) |
Jeśli wszystkie klasyfikacje w grupie o takich samych klasyfikacjach należą do dolnego zakresu wartości środkowej całej klasyfikacji, wówczas wszystkie wiersze uzyskują najniższą klasyfikację w tej grupie. Jeśli wszystkie klasyfikacje w grupie o takich samych klasyfikacjach należą do górnego zakresu wartości środkowej całej klasyfikacji, wówczas wszystkie wiersze uzyskują najwyższą klasyfikację w tej grupie. Jeśli klasyfikacje w grupie o takich samych klasyfikacjach obejmują środek zakresu całej klasyfikacji, wszystkie wiersze otrzymują wartość odpowiadającą średniej klasyfikacji górnej i dolnej w całej partycji. |
1 | Najniższa klasyfikacja we wszystkich wierszach. |
2 | Średnia klasyfikacja we wszystkich wierszach. |
3 | Najwyższa klasyfikacja we wszystkich wierszach. |
4 | Najniższa klasyfikacja w pierwszym wierszu, następnie zwiększana o jeden dla każdego wiersza. |
fmt
Drugi argument, fmt, może mieć następujące wartości:
Wartość | Opis |
---|---|
0 (domyślnie) | Niska wartość - wysoka wartość we wszystkich wierszach (na przykład 3–4). |
1 | Niska wartość we wszystkich wierszach. |
2 | Niska wartość w pierwszym wierszu, pusta w kolejnych wierszach. |
Kolejność wierszy dla argumentów mode 4 i fmt 2 jest określona przez kolejność ładowania pól tabeli.
Przykład — dodanie pola klasyfikowanego
Przykład — dodanie pola rankingowego przy użyciu fmt dla wyniku jednocyfrowego
Przykład — dodanie pola klasyfikowanego z wieloma partycjami
Ograniczenia
WRank ma następujące ograniczenia:
-
Jeśli wartość fmt wynosi 0 i chcesz użyć części tekstowej podwójnego wyniku dla WRank, musisz użyć Text() z Window(WRank). Na przykład: Text(Window(WRank(0), Unit, 'DESC', Age)) as UnitWRankedByAgeText.