Seskupování dat

Intermediate SQL Querying with AI

Jasmin Ludolf

Senior Data Science Content Developer

Seskupování dat

$$

  • Přehledy pro konkrétní skupiny

$$

  • Sloučení řádků se stejnými hodnotami

$$

  • Vytváření souhrnů k odhalení vzorů

Kolekce jazykových knih

Intermediate SQL Querying with AI

DISTINCT vs. skupiny

SELECT DISTINCT language
FROM films;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • Unikátní hodnoty
  • Jaké jazyky máme k dispozici?
SELECT language
FROM films
GROUP BY language;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • Vytváří skupiny
  • Kolik filmů máme v každém jazyce?
Intermediate SQL Querying with AI

Dotazy pro seskupování

Dotaz: Seskupit filmy podle jazyka

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

$$

  • Seskupování se běžně používá se souhrnnou statistikou:
    • např. počítání, průměry

$$

  • Bez konkrétního požadavku -> COUNT()
    • Agregační funkce
    • Sloučí více řádků do jediné hodnoty
Intermediate SQL Querying with AI

Časté chyby při seskupování

Dotaz: Zobrazit všechny názvy filmů seskupené podle jazyka

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...

Opravy AI:

  • Přidání funkce COUNT()
    SELECT language, COUNT(title) AS count
    FROM films
    GROUP BY language;
    
  • Výběr správných polí
    SELECT title, language
    FROM films
    GROUP BY title, language;
    
Intermediate SQL Querying with AI

Dotazy pro seskupování

Dotaz: Počítat filmy podle země a jazyka

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         |
...
Intermediate SQL Querying with AI

Seskupování a řazení

Dotaz: Seřadit jazyky podle počtu filmů, zobrazit 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        |
Intermediate SQL Querying with AI

Pojďme procvičovat!

Intermediate SQL Querying with AI

Preparing Video For Download...