Menu
Coddy logo textTech

Funkcje agregujące

Lekcja 11 z 13 w kursie SQL dla zaawansowanych w Coddy.

Funkcje agregujące służą do obliczania wartości funkcji AVG(), 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:

monthrevenue
440
520
660
755
861
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Zwróci to:

monthrevenuemax_revenue
44040
52040
66060
75560
86161

Dla miesięcy 4 i 5 maksymalny przychód wynosi 40, dla miesięcy 5 i 6 przychód wynosi 60, a dla miesiąca 8 wynosi 61. Dzieje się tak, ponieważ gdy funkcja znajdzie nowy, większy przychód, odrzuca poprzedni i używa największej dotychczas wartości.

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

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
monthrevenueavg_revenue
44040
52030
66040
75543.75
86147.2
challenge icon

Wyzwanie

Łatwy

Książki mają wiele stron, a na każdej stronie jest dużo słów.

W tym wyzwaniu obliczymy wiele różnych miar dotyczących tych książek.

Pobierz dla każdej książki łączną liczbę słów, maksymalną i minimalną liczbę słów oraz średnią liczbę słów do każdej strony; nazwij te kolumny odpowiednio: total_words, max_words, min_words, avg_words. Dodatkowo utwórz ranking stron ( dla każdej książki ) bez luk, obliczając dla każdej książki w kolejności rosnącej stosunek: (avg_words-min_words)/(total_words-min_words); nazwij tę kolumnę ratio_rank. Na koniec uporządkuj wynik rosnąco według book i ratio_rank.

Spróbuj swoich sił

Wszystkie lekcje w sekcji SQL dla zaawansowanych

Poćwicz samodzielnie: Kompilator Python online