Kolokwium zestaw nr 9 1. SELECT ename, job, sal, deptno, mgr FROM emp WHERE mgr IN (7902,7566,7788) ORDER BY deptno, job; 2. Sprawdzić ilu podwładnych ma każdy kierownik (podać jego numer i liczbę podwładnych). SELECT mgr, COUNT(*) "Ilosc prac" FROM emp GROUP BY mgr; 3. Wypisać działy, które zatrudniają mniej pracowników niż dział mieszczący się w Dallas. SELECT deptno, COUNT(*) "Zatrudnionych" FROM emp GROUP BY deptno HAVING COUNT (*) < (SELECT COUNT(*) FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE loc = 'DALLAS')); 4. Znaleść pracowników o najgorszej pensji w każdej grupie zarobkowej. Podać ich nazwisko, numer i pensję. SELECT ename, empno, sal, grade FROM emp, salgrade WHERE sal = (SELECT MIN(sal) FROM emp WHERE sal BETWEEN losal AND hisal); 5. Znaleść stanowiska, na których nikt nie zarabia mniej niż 250. SELECT DISTINCT job FROM emp WHERE sal > 250; 6. Dla każdego stanowiska policzyć ilość pracowników w nim zatrudnionych. Wypisać stanowisko tylko wtedy, gdy różnica między maksymalną a minimalną pensją nie przekracza 1000 SELECT e.job, COUNT(*), (MAX(sal) - MIN(sal)) Diff FROM emp e, salgrade s WHERE sal BETWEEN losal AND hisal AND sal < 1000 GROUP BY e.job; 7. - Wyszukaj stanowisko, dla których pensje pracowników należą do różnych grup zarobkowych. SELECT job, sal, grade FROM emp, salgrade WHERE sal = (SELECT DISTINCT sal FROM emp WHERE sal BETWEEN losal AND hisal); 8. - Policzyć kwoty potrzebne na pensje w każdej grupie zarobkowej. SELECT SUM(sal) "Kwota na pensje" FROM emp, salgrade WHERE sal IN (SELECT sal FROM emp, salgrade WHERE sal BETWEEN losal AND hisal); 9. Znaleść pracowników zarabiających większą pensję niż średnia w ich działach. Uporządkować wg rosnących zarobków. SELECT ename, sal, emp.deptno, DEPT_AVG FROM emp, (SELECT deptno, AVG(sal) DEPT_AVG FROM emp GROUP BY deptno) SredniaWDzialach WHERE emp.deptno = SredniaWDzialach.deptno ORDER BY sal; 10. Dla każdego kierownika (podać nazwisko) wypisać wszystkie zawody jego pracowników. Kolumny nazwać odpowiednio Kierownik i Stanowisko pracownika SELECT DISTINCT mgr "Kierownik", job "Stanowisko pracownika" FROM emp;