Lassen Sie sich zu jedem Mitarbeitenden den Namen der entsprechenden Abteilung anzeigen.
SELECT ename, dname FROM emp JOIN dept ON emp.deptno = dept.deptno;
Lassen Sie sich die Anzahl der Mitarbeitenden in jeder Abteilung anzeigen.
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;
Lassen Sie sich den Namen des Mitarbeitenden anzeigen, der am meisten verdient.
SELECT ename FROM emp WHERE sal = (SELECT MAX(sal) FROM emp);
CREATE TABLE emp1 AS SELECT * FROM emp;
Fügen Sie an die Tabelle emp_copy alle Werte der Tabelle emp an.
Lassen Sie sich zu jedem Mitarbeiter die Gehaltsgruppe anzeigen.
SELECT ename, grade FROM emp JOIN salgrade ON sal BETWEEN losal AND hisal;
Lassen Sie sich das durchschnittliche Gehalt der Mitarbeitenden, gruppiert nach dem Beruf, ohne die Salesman, anzeigen.
SELECT job, AVG(sal) FROM emp WHERE job<>'SALESMANN' GROUP BY job;
Lassen Sie sich die Namen aller Mitarbeitenden anzeigen, die King als vorgesetzen haben.
SELECT ename FROM emp WHERE mrg = (SELECT deptno FROM emp WHERE ename = 'KING');
Erstellen Sie eine Tabelle Mit_Bonus, in der die Namen aller Mitarbeitenden, sowie deren Gehalt unter berücksichtung des Bonus, gespeichert werden.
CREATE TABLE Mit_Bonus AS SELECT ename, sal+NVL(comm,0) FROM emp;
Fügen Sie alle Informationen der Mitarbeitenden aus Abteilung 10 an die Tabelle emp_copy an.
INSERT INTO emp_copy SELECT * FROM emp WHERE deptno = 10;
Lassen Sie sich für jeden Mitarbeitenden, der mehr als 2400$ verdient den Namen der Abteilung anzeigen.
SELECT ename, dname FROM emp JOIN dept on emp.deptno = dept.deptno WHERE sal > 2400;
Lassen Sie sich das höchste Gehalt eines Clercs in jeder Abteilung anzeigen.
SELECT deptno, MAX(sal) FROM emp WHERE job = 'CLERK' GROUP BY deptno;
Lassen Sie sich die Namen aller Mitarbeitenden anzeigen, die in einer Abteilung arbeiten, in der jemand mit dem Beruf Manager arbeitet.
SELECT ename FROM emp WHERE deptno IN (SELECT deptno FROM emp WHERE job = 'MANAGER');
Erstellen Sie eine Tabelle Top_Manager, die alle Informationen der Mitarbeitenden mit dem Job Manager beinhaltet, die mehr als 1500$ verdienen.
CREATE TABLE Top_Manager AS SELECT * FROM emp WHERE job = 'MANAGER' AND sal > 1500;
Fügen Sie alle Mitarbeitenden, die weniger als 1600$ verdienen und nicht in Abteilung 10 arbeiten an die Tabelle emp1 an.
INSERT INTO emp1 SELECT * FROM emp WHERE sal < 1600 AND deptno <> 10;
Lassen Sie sich zu jedem Mitarbeitenden den Namen des Vorgesetzten anzeigen.
SELECT e1.ename, e2.ename FROM emp e1 JOIN emp e2 ON e1.empno = e2.mgr;
Lassen Sie sie alle Abteilungen anzeigen, in denen die Mitarbeitenden durchschinttlich mindestens 1300$ verdienen.
SELECT deptno FROM emp GROUP BY deptno HAVING AVG(sal)>=1300;
Lassen Sie sich alle Mitarbeiten anzeigen, die in den gleichen Job haben, wie einer der Mitarbeitenden, die mehr verdienen als alle Mitarbeitenden der Abteilung 10.
SELECT ename FROM emp WHERE job = (SELECT job FROM emp WHERE sal >ALL (SELECT sal FROM emp WHERE deptno = 10));
Erstellen Sie eine Tabelle Mit_Abteilungsname, die alle Informationen der Tabellen emp und dept sinnvoll verbindet.
SELECT emp.*, dept.* FROM emp JOIN dept ON emp.deptno = dept.deptno;
Fügen Sie an die Tabelle emp_copy den Namen und die Abteilung aller Mitarbeitenden an, die mehr verdienen als ein Mitarbeiter mit dem Beruf Clerk.
INSERT INTO emp_copy SELECT ename, deptno FROM emp WHERE sal >ANY (SELECT sal FROM emp WHERE job = 'CLERK');
Lassen Sie sich den Namen aller Mitarbeitenden anzeigen, die unter berücksichtigung des Bonus in der Gehaltsstufe 3 sind.
SELECT ename FROM emp JOIN salgrade ON sal+NVL(comm,0) BETWEEN losal AND hisal WHERE grade =3;
Lassen Sie sich die Summe der Geälter der Mitarbeitenden jeden Jobs anzeigen, in denen der bestbezahlteste Mitarbeiter mindesten 1100$ verdient, ohne die Mitarbeitenden King und Scott zu berücksichtigen.
SELECT deptno, SUM(sal) FROM emp WHERE ename NOT IN ('KING', 'SCOTT') GROUP BY job HAVING MAX(sal)>=1100;
Lassen Sie sich alle Mitarbeitenden anzeigen, die mehr verdienen als irgendein Mitarbeitender aus der Abteilung 30, aber mehr als alle Mitarbeitenden mit dem Job Salsman.
SELECT ename FROM emp WHERE sal >ANY (SELECT sal FROM emp WHERE deptno = 30) AND sal >ALL (SELECT sal FROM emp WHERE job = 'SALESMAN');
Erstellen Sie eine Tabelle Durchschnitte, die das durchschnittliche Gehalt der Mitarbeitenden pro Gehaltsgruppe beinhaltet, wobei nur die Mitarbeitenden berücksichtigt werden, die in der gleichen Abteilung sind wie Scott.
CREATE TABLE Durchschnitte AS SELECT grade, AVG(sal) FROM emp join salgrade ON sal BETWEEN losal AND hisal WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'SCOTT') GROUP BY grade;
Fügen Sie in die Tabelle Mit_Abteilungen den Namen der Mitarbeitenden, sowie den Namen der entsprechenden Abteilung ein, für alle Mitarbeitenden, die weniger verdienen als alle Mitaribeitenden, die in einer Abteilung sind, die im Durchschnitt mehr als 1000$ verdient.
INSERT INTO Mit_Abteilungen SELECT ename, dname FROM emp JOIN dept ON emp.deptno = dept.deptno WHERE sal <ALL (SELECT sal FROM emp WHERE deptno IN (SELECT deptno FROM emp GROUP BY deptno HAVING AVG(sal)>1000));