Funkcja NTILE
Lekcja 10 z 13 w kursie SQL dla zaawansowanych w Coddy.
NTILE(n) numeruje wiersze, dzieląc je na n 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, więc ta funkcja pozwala wysyłać mniejsze części za każdym razem.
Na przykład:
| id | level |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1Zwróci to:
| id | level | pieces |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
Otrzymaliśmy 3 części: poziom 4 w części 1, poziomy 5 i 6 w części 2 oraz poziom 7 w części 3.
Jeśli n w NTILE(n) nie dzieli się równo przez liczbę wierszy w tabeli: załóżmy, że tabela ma 9 wierszy, a n wynosi 4 — funkcja umieści tyle wierszy, ile się da, w ostatniej części.
Wyzwanie
ŚredniW tym wyzwaniu mamy stworzenia, które chcą znaleźć drugą połówkę. Musimy pomóc im znaleźć odpowiedniego partnera.
Każde stworzenie ma preferencję reprezentowaną jako liczba. Jeśli liczby u obu stworzeń są wystarczająco zbliżone, mogą do siebie pasować.
Znajdź najlepsze pary. Utwórz nową kolumnę o nazwie couple_matcher, której wartości będą ponumerowane od jednego do liczby stworzeń podzielonej przez dwa, przy czym każda para powinna mieć ten sam numer. Pary mogą być tworzone tylko wtedy, gdy jedno stworzenie ma nogi, a drugie ich nie ma.
Posortuj wynik rosnąco według couple_matcher i creature_name.
Spróbuj swoich sił
Wszystkie lekcje w sekcji SQL dla zaawansowanych
Poćwicz samodzielnie: Kompilator Python online