Grupowanie danych

SQL średnio zaawansowany z pomocą AI

Jasmin Ludolf

Senior Data Science Content Developer

Grupowanie danych

$$

  • Wgląd w dane poszczególnych grup

$$

  • Łączenie wierszy o tych samych wartościach

$$

  • Tworzenie podsumowań ujawniających wzorce

Kolekcja książek językowych

SQL średnio zaawansowany z pomocą AI

DISTINCT a grupowanie

SELECT DISTINCT language
FROM films;
|language|
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • Unikalne wartości
  • Jakie języki mamy w bazie?
SELECT language
FROM films
GROUP BY language;
|language|
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • Tworzy grupy
  • Ile filmów mamy w każdym języku?
SQL średnio zaawansowany z pomocą AI

Zapytania do grupowania

Zapytanie: Pogrupuj filmy według języka

SELECT language, COUNT(*) AS lang_count
FROM films
GROUP BY language;
|language|lang_count|
|--------|----------|
|        |11        |
|Arabic  |5         |
|Kannada |1         |
|Czech   |1         |
...

$$

  • Grupowanie jest często stosowane ze statystykami:
    • np. liczenie, średnie

$$

  • Brak konkretnej prośby -> COUNT()
    • Funkcja agregująca
    • Łączy wiele wierszy w jedną wartość
SQL średnio zaawansowany z pomocą AI

Typowe błędy grupowania

Zapytanie: Wyświetl wszystkie tytuły filmów pogrupowane według języka

SELECT title
FROM films
GROUP BY language;
column "films.title" must appear in the
GROUP BY clause or be used in an 
aggregate function LINE 1...

Korekty AI:

  • Dodanie funkcji COUNT()
    SELECT language, COUNT(title) AS count
    FROM films
    GROUP BY language;
    
  • Wybór właściwych pól
    SELECT title, language
    FROM films
    GROUP BY title, language;
    
SQL średnio zaawansowany z pomocą AI

Zapytania do grupowania

Zapytanie: Policz filmy według kraju i języka

SELECT country, language, COUNT(*) AS film_count
FROM films
GROUP BY country, language;
|country           |language|film_count|
|------------------|--------|----------|
|                  |        |1         |
|Pakistan          |Urdu    |1         |
|Mexico            |English |3         |
|Dominican Republic|Spanish |1         |
...
SQL średnio zaawansowany z pomocą AI

Grupowanie i sortowanie

Zapytanie: Uszereguj języki według liczby filmów, pokaż top 3

SELECT language, COUNT(*) AS film_count
FROM films
GROUP BY language
ORDER BY film_count DESC
LIMIT 3;
|language|film_count|
|--------|----------|
|English |4635      |
|French  |72        |
|Spanish |40        |
SQL średnio zaawansowany z pomocą AI

Czas na ćwiczenia!

SQL średnio zaawansowany z pomocą AI

Preparing Video For Download...