Interaktivní trenér pro procvičování SQL dotazů na reálných scénářích
Interaktivní trenér nabízí přímý přístup k reálným databázím prostřednictvím spouštění SQL dotazů. Uživatelé řeší úkoly v modulech, které napodobují typické podnikové scénáře, jako je správa objednávek v e-shopu. Absence teoretických bloků umožňuje soustředit se na psaní a ladění dotazů v pracovním prostředí.
Moduly jsou založeny na schématech reálných tabulek s daty, kde je třeba použít JOIN, agregace a filtrování. Například ve scénáři e-shopu se analyzují vztahy mezi tabulkami users, orders a products pro extrakci metrik prodejů.
Struktura modulů a typické úkoly
Každý modul představuje izolovanou databázi s předvyplněnými tabulkami. Úkoly jsou zaměřené na praktické dovednosti: od základních SELECT po složité poddotazy a okenní funkce.
V modulu "E-shop":
- Získání seznamu aktivních uživatelů s celkovou částkou objednávek.
- Výpočet průměrné hodnoty nákupu podle kategorií produktů pomocí GROUP BY.
- Analýza retentionu prostřednictvím okenních funkcí ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date).
Modul "Knihovna" (v vývoji) zahrnuje:
- Hledání knih podle žánrů pomocí LIKE a plnohodnotného vyhledávání.
- Statistika výdejů s poddotazy pro výpočet popularity autorů.
- Agregace dat podle čtenářů s HAVING pro filtrování nejaktivnějších.
| Modul | Klíčové tabulky | Hlavní operace |
|--------|------------------|-------------------|
| E-shop | users, orders, products | JOIN, GROUP BY, agregáty |
| Knihovna | readers, books, issues | WHERE, SUBQUERY, okenní funkce |
Dovednosti procvičované v trenérovi
Praxe pokrývá kompletní cyklus práce s SQL:
- Základní dotazy: SELECT, WHERE, ORDER BY pro filtrování a třídění.
- Spojení: INNER JOIN, LEFT JOIN pro propojení tabulek.
- Agregace: COUNT, SUM, AVG s GROUP BY a HAVING.
- Poddotazy a CTE: Korespondující poddotazy, WITH pro mnohokrokovou analýzu.
- Okenní funkce: RANK, LAG, LEAD pro analýzu posloupností.
Příklad typické úlohy: "Najděte top 5 produktů podle obratu za poslední měsíc, vyloučením vrácených zásilek (status = 'cancelled')."
SELECT
p.name,
SUM(oi.quantity * p.price) as revenue
FROM products p
JOIN order_items oi ON p.id = oi.product_id
JOIN orders o ON oi.order_id = o.id
WHERE o.order_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
AND o.status != 'cancelled'
GROUP BY p.id, p.name
ORDER BY revenue DESC
LIMIT 5;
Tento přístup umožňuje okamžitě ověřit syntaxi i logiku na živých datech.
Co je důležité
- Trenér se zaměřuje na reálné úkoly bez teorie, s okamžitou zpětnou vazbou na dotazy.
- Podpora standardního SQL (ANSI), kompatibilního s PostgreSQL, MySQL, SQLite.
- Modulární struktura pro postupné osvojování od jednoduchých filtrů až po složitou analýzu.
- Přizpůsobení podle rolí: vývojáři si procvičují přípravu pro ORM, analytici pracují s BI-dotazy.
- Bezplatný přístup bez registrace pro rychlé spuštění.
Použití v profesionálním prostředí
Pro middle/senior vývojáře je trenér užitečný pro procvičení optimalizace dotazů: analýza EXPLAIN, indexace a výkon na velkých datových sadách. QA inženýři jej využívají k generování testovacích dat a validaci schémat.
Business analytici si procvičují metriky: cohort analysis, funnel conversion s okenními funkcemi. Správci DB ověřují migrace a integrity constraints prostřednictvím praktických scénářů.
Celkový počet úkolů v modulech přesahuje 50, s postupným zvyšováním obtížnosti. Integrace s GitHubem pro uložení řešení.
— Editorial Team
Zatím žádné komentáře.