Menu
Coddy logo textTech

Funkcje agregujące

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

Funkcje agregujące służą do obliczania AVG() lub MAX(), lub dowolnej innej funkcji agregującej aż do bieżącego wiersza.
Na przykład możemy obliczyć maksymalny przychód uzyskany do każdego końcowego okresu:

miesiącprzychódregion
440Wschód
520Wschód
660Zachód
755Zachód
861Wschód
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Zwróci to:

miesiącprzychódmax_revenue
44040
52040
66060
75560
86161

W miesiącach 4 i 5 maksymalny przychód wynosi 40, w miesiącach 6 i 7 — 60, a w miesiącu 8 — 61. Dzieje się tak, ponieważ gdy znajduje nowy, większy przychód, odrzuca poprzedni i używa największego dotychczas.

W przypadku funkcji AVG() będzie to wyglądać tak:

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
miesiącprzychódavg_revenue
44040
52030
66040
75543.75
86147.2

Możemy także grupować nasze obliczenia według określonych kategorii za pomocą PARTITION BY. Na przykład:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

Dałoby nam to:

monthrevenueregionmax_revenue
440East40
520East40
660West60
755West60
861East61

Teraz maksimum jest obliczane osobno dla każdego regionu. Regiony East i West niezależnie utrzymują własne bieżące maksima.

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • books: book, page, words

Dla każdej książki wyświetl nazwę książki, łączną liczbę jej stron, liczbę słów na każdej stronie i oblicz:

  1. Maksymalną liczbę słów na dowolnej stronie tej książki
  2. Średnią liczbę słów na stronę dla całej książki
  3. Różnicę między liczbą słów na bieżącej stronie a średnią liczbą słów na stronę w książce

Wyświetl wyniki posortowane według książki i numeru strony.

Zwróć następujące kolumny:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

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