Maturitarozbory témat
12

Jazyk SQL

📚 DBS
Příprava: 15 min
Zkouška: 15 min
📖

Teorie

DML: SELECT, INSERT, UPDATE, DELETE. DDL: CREATE/ALTER/DROP. DCL/TCL: GRANT/REVOKE, COMMIT/ROLLBACK. JOINy (INNER/LEFT/RIGHT/FULL), GROUP BY + HAVING, poddotazy, okénkové funkce (OVER, PARTITION BY), indexy.

🎯

Tahák

  • 1JOIN vs. WHERE filtrace
  • 2HAVING filtruje agregace
  • 3Window funkce: ROW_NUMBER, SUM OVER

Typické otázky u maturity

  • 1Rozdíl WHERE vs. HAVING?
  • 2Kdy použít CTE?
🏷️

Klíčová slova

SQLJOINGROUP BYCTEwindow

Praktická část

Zadání:

Vyber TOP 3 zákazníky podle útrat za poslední rok.

Kroky:

  1. 1JOIN objednávky a položky
  2. 2GROUP BY zákazník
  3. 3ORDER BY suma DESC
  4. 4LIMIT 3

Kód:

top-customers.sql
WITH year_orders AS (
  SELECT o.CustomerId, SUM(oi.Price*oi.Qty) AS total
  FROM Orders o
  JOIN OrderItems oi ON oi.OrderId = o.Id
  WHERE o.CreatedAt >= DATEADD(year,-1,GETDATE())
  GROUP BY o.CustomerId
)
SELECT TOP 3 * FROM year_orders ORDER BY total DESC;