Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Komnata Liczb - podsumowanie

Wspaniale, @name! Przeszedłeś Komnatę Liczb i nauczyłeś się patrzeć na dane jak prawdziwy zarządca Biblioteki - z lotu ptaka. Oto Twój zwój wiedzy:

Czego się nauczyłeś

  • Funkcje agregujące zwracają jedną wartość z wielu wierszy: COUNT, SUM, AVG, MIN, MAX.
  • COUNT(*) liczy wszystkie wiersze, COUNT(kolumna) pomija wartości NULL, a COUNT(DISTINCT kolumna) liczy tylko różne wartości.
  • GROUP BY dzieli wiersze na grupy i liczy agregat dla każdej grupy osobno.
  • HAVING filtruje grupy po wyniku agregacji (np.
    HAVING COUNT(*) > 3
    ).
  • WHERE filtruje wiersze przed grupowaniem, a HAVING filtruje grupy po agregacji.

Kolejność klauzul - zapamiętaj na zawsze

Klauzule zawsze muszą wystąpić w tej kolejności:

1SELECT   kolumna, COUNT(*)
2FROM     tabela
3WHERE    warunek_na_wierszach
4GROUP BY kolumna
5HAVING   warunek_na_agregacie
6ORDER BY COUNT(*) DESC;

Przykład łączący wszystko

1SELECT kategoria_id, COUNT(*), AVG(cena)
2FROM ksiazki
3WHERE dostepna = 1
4GROUP BY kategoria_id
5HAVING COUNT(*) > 5
6ORDER BY AVG(cena) DESC;

"Dla dostępnych książek pokaż kategorie z więcej niż 5 tytułami, podaj ich liczbę i średnią cenę, a wynik posortuj od najdroższych."

Co dalej?

W następnej lokacji nauczysz się łączyć regały - poznasz JOIN-y, dzięki którym połączysz książki z ich autorami i kategoriami w jeden spójny katalog. Liczydło odłożone - czas na mosty między tabelami!

Przejdź do CodeWorlds