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ąc | przychód | region |
| 4 | 40 | Wschód |
| 5 | 20 | Wschód |
| 6 | 60 | Zachód |
| 7 | 55 | Zachód |
| 8 | 61 | Wschód |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Zwróci to:
| miesiąc | przychód | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
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ąc | przychód | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.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 table1Dałoby nam to:
| month | revenue | region | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
Teraz maksimum jest obliczane osobno dla każdego regionu. Regiony East i West niezależnie utrzymują własne bieżące maksima.
Wyzwanie
ŁatwyDostę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:
- Maksymalną liczbę słów na dowolnej stronie tej książki
- Średnią liczbę słów na stronę dla całej książki
- 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:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Więcej słów kluczowych
Słowo kluczowe INSłowo kluczowe BETWEENSłowo kluczowe LIKESłowo kluczowe ASPowtórzenie – modele telefonów komórkowych2Instrukcje warunkowe
Podstawy instrukcji warunkowychSłowo kluczowe ANDSłowo kluczowe ORSłowo kluczowe NOTŁączenie wielu warunkówNawiasyWartości logiczne3Określony format zwracanych danych
Wartości nullSortowanie wyników — część 1Sortowanie wyników — część 2Powtórzenie — firma zajmująca się cyberbezpieczeństwemOgraniczanie liczby rekordówPowtórzenie — fabryka pojazdów6Wyzwania na początek
Powtórka – wybory parlamentarnePowtórka – zatrzymanie przestępcy przez policjęPowtórka – pojemnik na napój w barzePowtórka – inżynier: nowe kolumny9Wiele tabel
Podstawowe JOIN — część 1Podstawowe JOIN — część 2Powtórka — JOINSamozłączeniePowtórka — samozłączenieUNIONUprość zapytania — słowo kluczowe WITHPowtórka — zapytania WITHPowtórka — wykonawca z branży nieruchomości12Funkcje okna część 2
Funkcje RANK i DENSE_RANKPowtórzenie – RANK i DENSE_RANKFunkcja NTILEFunkcje agregująceKryterium ROWS i RANGEPoćwicz samodzielnie: Edytor online SQL