1. Vypiste zoznam pozicii, v ktorych pracuju ludia z Chicaga.
  2. Vypiste ku kazdemu zamestnancovi (,ktory ma manazera,) jeho manazera.
  3. Vypiste vsetky zamestnania, ktorych predstavitelia sefuju len zamestnancom s platom viac ako 1400.
  4. Vypiste vsetkych zamestnancov, ktori dostali pridelene premie (aj nulove).
    riesenie:
    SELECT * FROM emp WHERE comm IS NOT NULL;
    odmeny(X):-emp(_,X,_,_,_,_,C,_),\+(C=null).

    Nasledujuce priklady uz budeme robit len pomocou SQL

  5. Vypiste pocet vsetkych zamestnancov.
    SELECT COUNT(*) FROM emp;
  6. Vypiste pocet vsetkych oddeleni.
  7. Vypiste pocet vsetkych (roznych) povolani.
    SELECT COUNT( DISTINCT job) AS "pocet povolani" FROM emp;
  8. Vypiste ich.
    riesenie:
    SELECT DISTINCT job FROM emp;

  9. Vypiste priemerny plat zamestnanca z Dalasu.
    riesenie:
    SELECT AVG(sal) FROM emp e, dept d WHERE e.deptno = d.deptno and d.loc = 'DALLAS';
  10. Vypiste minimalny plat zamestnanca z 3. platovej skupiny.
  11. Vypiste pre kazde cislo oddelenia priemerny plat (a zoradte ich podla priemerneho platu zostupne).
    SELECT deptno, AVG(sal) FROM emp GROUP BY deptno ORDER BY 2 DESC;
    SELECT deptno, AVG(sal) AS "priemerny plat" FROM emp GROUP BY deptno ORDER BY "priemerny plat" DESC;
  12. Vypiste pre kazde oddelenie pocet zamestnancov.
  13. (Bonus) Vypiste pre kazdeho zamestnanca pocet jeho podriadenych.
  14. Vypiste ku kazdemu zamestnancovi pocet jeho kolegov (!on si nie je sam kolega).
  15. Vypiste cisla oddeleni s poctom zamestnancom viac ako 3.
    SELECT deptno, COUNT(*) FROM emp GROUP BY deptno HAVING COUNT(*)>3;
  16. Vypiste kazdeho sefa (tj. cloveka, co ma aspon jedneho podriadeneho) a pocet jeho podriadenych.
  17. Vypiste vsetky oddelenia s mzdovymi nakladmi (suma platov zamestnancov) vacsou ako 4000 s tym, ze sa nebudu ratat manazeri (a ani prezident).