Menu
Coddy logo textTech

Funkcja ROW_NUMBER

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

Funkcje okna wykonują obliczenia na zbiorze wierszy tabeli powiązanych z bieżącym wierszem. W przeciwieństwie do zwykłych funkcji agregujących funkcje okna nie łączą wyników w jeden wiersz.

Są szczególnie przydatne, gdy musisz:

  • Obliczać sumy narastające
  • Tworzyć rankingi elementów w grupach
  • Porównywać bieżące wiersze z poprzednimi/następnymi wierszami
  • Analizować trendy w różnych okresach

Oto kilka przykładów zastosowań funkcji okienkowych w rzeczywistych sytuacjach:

  • Analiza sprzedaży
    • Oblicz skumulowaną sprzedaż do każdego roku (1995, 1997, 1999)
    • Znajdź najlepiej sprzedające się produkty w każdym kwartale
  • Statystyki sportowe
    • Śledź liczbę medali olimpijskich w różnych latach
    • Wskaż czołowych sportowców w każdym okresie zawodów (2000, 2004, 2008)

ROW_NUMBER() to jedna z najprostszych funkcji okna. Przypisuje unikalny kolejny numer do każdego wiersza w zestawie wyników. Oto jak jej używać:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

Klauzula OVER musi być używana z ROW_NUMBER() : ROW_NUMBER() OVER ()

Na przykład:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

Dodaje to kolumnę row_num, która zlicza wiersze od 1 do ich łącznej liczby.

Uwaga: klauzula OVER może zawierać instrukcje dotyczące sortowania i podziału na partycje, które kontrolują sposób nadawania numerów.

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • liquids: id, density

Pobierz wszystkie ciecze o gęstości większej niż 5.677.

Ponumeruj wynik (użyj funkcji ROW_NUMBER()) i nazwij tę kolumnę row_num

Spróbuj swoich sił

-- Ponumeruj każdy wiersz przefiltrowanego wyniku za pomocą funkcji okna
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
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