📖
Teorie
SELECT sloupce FROM tabulka JOIN ... WHERE podmínka GROUP BY HAVING ORDER BY LIMIT. Používejte indexy pro výkon, CS vs CI porovnávání, NULL handling (IS NULL), agregace (COUNT, SUM, AVG, MIN, MAX).
🎯
Tahák
- 1WHERE filtruje řádky před GROUP BY
- 2HAVING filtruje po agregaci
- 3IS NULL vs = NULL
❓
Typické otázky u maturity
- 1Jak funguje GROUP BY?
- 2Kdy použít EXISTS vs JOIN?
🏷️
Klíčová slova
SELECTJOINWHEREGROUP BYHAVING
⚡
Praktická část
Zadání:
Napiš dotaz: pro každého autora vyber počet knih vydaných po roce 2000, řazeno sestupně.
Kroky:
- 1JOIN author-book
- 2WHERE year>2000
- 3GROUP BY author
- 4ORDER BY count DESC
Kód:
books-by-author.sql
SELECT a.name, COUNT(b.id) AS cnt
FROM authors a
JOIN books b ON b.author_id = a.id
WHERE b.year > 2000
GROUP BY a.name
ORDER BY cnt DESC;