-----==== Řešení příkladů na SELECT ====-----
1) Pro každé město vypište počet poboček, které tam má banka otevřeny.
SELECT mesto, COUNT(*) FROM pobocka GROUP BY mesto;
2) Města s více než 3 pobočkami banky.
SELECT mesto FROM pobocka GROUP BY mesto HAVING COUNT(*) > 3
3) Pro každého zákazníka vypište sumu jeho vkladů.
SELECT zjmeno, SUM(stav) AS vklady FROM vklady GROUP BY zjmeno;
4) Pro každého zákazníka vypište sumu jeho úvěrů.
SELECT zjmeno, SUM(vyse) AS uvery FROM uvery GROUP BY zjmeno;
5) Pro každého zákazníka vypište jeho bilanci (rozdíl vkladů a úvěrů).
SELECT zjmeno, COALESCE(vklady,0)-COALESCE(uvery,0) AS bilance FROM
(SELECT zjmeno, SUM(stav) AS vklady FROM vklady GROUP BY zjmeno) V
FULL OUTER JOIN
(SELECT zjmeno, SUM(vyse) AS uvery FROM uvery GROUP BY zjmeno) U
USING (zjmeno);
6) Vypsat pobočky, v nichž je průměrný zůstatek na vkladových účtech vyšší než
nebo roven průměrnému zůstatku na všech vkladových účtech v rámci banky.
SELECT pnazev
FROM vklady
GROUP BY pnazev
HAVING AVG(stav) >= (SELECT AVG(stav) FROM vklady);
7) Pro každou pobočku seznam zákazníků ve formátu jméno a počet úvěrových
účtů. Pouze pro zákazníky dané pobočky, kteří mají více než 2 úvěry, každý přesahující 100 000 CZK.
SELECT pnazev, zjmeno, COUNT(ucetc)
FROM uvery
WHERE vyse > 100000
GROUP BY pnazev, zjmeno
HAVING COUNT(*) > 2
8) Pro každého zákazníka s více než 2 vkladovými účty vypsat kompletní adresu
(tj. jméno, ulice, město, psč).
SELECT z.zjmeno, ulice, mesto, psc
FROM zakaznik z, vklady v
WHERE z.zjmeno=v.zjmeno
GROUP BY z.zjmeno, ulice, mesto, psc
HAVING COUNT(ucetc) > 2;