-----==== Ř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;