Menu
Coddy logo textTech

Suma narastająco

Część sekcji Poza podstawami ścieżki SQL w Coddy. Lekcja 25 z 27.

Suma bieżąca (skumulowana) to SUM w oknie z ORDER BY: dzięki temu agregat rośnie wiersz po wierszu.

SELECT day, amount,
       SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenue

Bez ORDER BY okno obejmuje każdy wiersz i otrzymasz sumę całkowitą w każdym wierszu. Z nim okno rozszerza się po jednym wierszu w tej kolejności, więc każdy wiersz widzi tylko siebie i wszystko, co jest przed nim.

Dodaj PARTITION BY, aby zerować sumę narastającą dla każdej grupy, np. sumę narastającą przychodów dla każdego regionu, z dnia na dzień.

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • revenue: region, day, amount

Zwróć region, day, amount i region_running_total: skumulowaną wartość amount dla danego regionu aż do tego dnia włącznie. Suma narastająca powinna być zerowana dla każdego regionu.

Użyj PARTITION BY dla okna. Sortuj według region, a następnie day.

Spróbuj swoich sił

SELECT region, day, amount,
       -- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Poza podstawami

Poćwicz samodzielnie: Edytor online SQL