Menu
Coddy logo textTech

Przekształcanie wierszy w kolumny

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

Połącz agregację warunkową z GROUP BY, aby przekształcić wiersze w kolumny. To odpowiednik tabeli przestawnej w arkuszu kalkulacyjnym w SQL.

Załóżmy, że sales zawiera wiersze w formacie (month, product, units). Aby zobaczyć jeden wiersz na miesiąc i jedną kolumnę na produkt:

SELECT
    month,
    SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
    SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY month

Każda grupa GROUP BY, którą widzi SUM(CASE …), obejmuje wiersze z jednego miesiąca; CASE wybiera część dotyczącą jednego produktu.

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • sales: month, product, units

Przekształć dane tak, aby każdy wiersz odpowiadał jednemu month i zawierał następujące kolumny:

  • month
  • apples: łączna liczba units dla produktu 'apples' w danym miesiącu
  • bananas: to samo dla 'bananas'
  • cherries: to samo dla 'cherries'
  • total: łączna liczba units ze wszystkich produktów w danym miesiącu

Zwróć tylko te miesiące, w których total wynosi co najmniej 20. Posortuj według month.

Spróbuj swoich sił

SELECT month,
       -- jedno SUM(CASE ...) na produkt, plus suma całkowita
FROM sales
GROUP BY month
-- odfiltruj miesiące, dla których suma całkowita >= 20
ORDER BY month
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