Menu
CoddyTech

Funkcja NTILE

Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 67 z 72.

NTILE(n) numeruje wiersze, dzieląc je na n w przybliżeniu równych części. Jest często używana w celu zwiększenia wydajności — wysyłanie dużych ilości danych naraz może nie być dobrym pomysłem, więc ta funkcja umożliwia wysyłanie mniejszych części za jednym razem.

Na przykład:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

Zwróci to:

idlevelpieces
141
241
352
462
573
673

Mamy 3 części: poziom 4 w części 1, poziomy 5 i 6 w części 2 oraz poziom 7 w części 3.
Gdy liczba wierszy nie dzieli się równo przez n, NTILE rozdziela wiersze możliwie równomiernie, przy czym większe grupy pojawiają się jako pierwsze. Na przykład, jeśli masz 9 wierszy i NTILE(4), podział wyglądałby tak:

  • Grupa 1: 3 wiersze
  • Grupa 2: 2 wiersze
  • Grupa 3: 2 wiersze
  • Grupa 4: 2 wiersze

Dzięki temu żadna grupa nie różni się od pozostałych o więcej niż jeden wiersz, a dodatkowe wiersze są przydzielane najpierw grupom o niższych numerach.

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • creatures: creature_name, preference, has_legs (zawiera 'YES' lub 'NO')

W tym wyzwaniu mamy stworzenia, które chcą znaleźć drugą połówkę. Musimy pomóc im znaleźć odpowiednią parę.

Każde stworzenie ma preferencję reprezentowaną jako liczba. Jeśli liczby przypisane do obu stworzeń są wystarczająco zbliżone, mogą do siebie pasować.

Podziel stworzenia na 3 grupy na podstawie wartości ich preferencji, ale uwzględnij tylko stworzenia, które mają nogi (gdzie has_legs = 'YES'). Zwróć creature_name, preference i ich group_number (1, 2 lub 3). Uporządkuj wyniki rosnąco według preference.

Spróbuj swoich sił

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online SQL