Menu
Coddy logo textTech

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. Często używa się go w celu zwiększenia wydajności — wysyłanie dużych ilości danych naraz może nie być dobrym pomysłem, dlatego ta funkcja pozwala wysyłać mniejsze części.

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 jest równo podzielna przez n, NTILE rozdziela wiersze możliwie równomiernie, przy czym większe grupy pojawiają się najpierw. 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

Zapewnia to, że liczba wierszy w żadnej grupie nie różni się od liczby wierszy w żadnej innej grupie o więcej niż jeden, a dodatkowe wiersze są najpierw przydzielane do grup 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źć odpowiedniego partnera.

Każde stworzenie ma preferencję wyrażoną 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 oraz 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