SQL入門第7章 実習課題

7−1 グループ関数

設問1
DEPT表の全ての行を数えその数を表示しなさい。
設問2
EMP表の「COMM」がNULLでない行を数えその数を表示しなさい。
設問3
EMP表の「COMM」がNULLでない行の数と全社員の数を表示しなさい。「COMM」の数の列名は"歩合制社員数"、全社員の数の列名は"全社員数"とする。
設問4
EMP表から「JOB」が'MANAGER'である社員全員の「SAL」の平均額と最高額と合計額を表示しなさい。平均額の列名は"給与平均額"、最高額の列名は"給与最高額"、合計額の列名は"給与合計額"とする。

7−2 グループ分け

設問1
EMP表から「MGR」ごとの社員数を求めなさい。列は「MGR」とその社員数を表示すること。
設問2
EMP表から同じ「JOB」のそれぞれの「MGR」とその社員数を求めなさい。列は「JOB」「MGR」と社員数を表示すること。
設問3
EMP表から「JOB」と全社員数を求めなさい。エラー「ORA-00937: 単一グループのグループ関数ではありません」が表示されることを確認すること。

7−3 グループの選択(絞り込み)

設問1
EMP表から同じ「DEPTNO」の社員数が5人以下の「DEPTNO」と「SAL」の合計を表示しなさい。「SAL」の合計の列名は"部門別給与合計"とする。
設問2
EMP表から「JOB」が'PRESIDENT'の社員を除く中から、各「DEPTNO」の「SAL」の平均が2000以上の「DEPTNO」と「SAL」の平均を表示しなさい。「SAL」の平均の列名は"給与平均"とする。
設問3
EMP表から「SAL」が1000より多い社員の中から、各「DEPTNO」別の該当社員が3人よりも多い「DEPTNO」と件数を表示しなさい。

7−4 表の結合1(単純結合)

設問1
EMP表とDEPT表から全社員の「EMPNO」「ENAME」「JOB」「DEPTNO」「DNAME」を表示しなさい。なお、「DEPTNO」の表名はDEPT表とすること。



設問2
EMP表とDEPT表から「JOB」が'MANAGER'の社員の「ENAME」「JOB」「LOC」を表示しなさい。



設問3
EMP表とDEPT表から「DEPTNO」が20の社員の「ENAME」「DNAME」を表示しなさい。なお「DEPTNO」の表名はEMP表とすること。



7−5 表の結合2(外部結合)

設問1
EMP表とDEPT表から全社員の「ENAME」「DEPTNO」「LOC」を表示しなさい。そのとき、DEPT表に存在する「DEPTNO」「LOC」は全て表示すること。

設問2
EMP表とDEPT表から全社員の「EMPNO」「ENAME」「JOB」「DEPTNO」「DNAME」を表示しなさい。そのとき、DEPT表に存在する「DEPTNO」「DNAME」は全て表示すること。

7−6 表の結合3(同一表結合)

設問1
EMP表から全社員の名前「ENAME」と上司の名前「ENAME」を表示しなさい。結果の表示方法は、<自分の名前>の上司は<上司の名前>とすること。

設問2
EMP表から上司の名前「ENAME」と全社員の名前「ENAME」を上司の名前「ENAME」の昇順で表示しなさい。結果の表示方法は、<上司の名前>の部下は<自分の名前>とすること。

7−7 副問い合わせ(サブクエリー)

設問1
EMP表から「ENAME」が'JONES'と同じ「DEPTNO」の社員の「ENAME」「JOB」を表示しなさい。
設問2
EMP表から「SAL」が全社員の「SAL」の平均より多く、かつ「ENAME」が'SMITH'と同じ「DEPTNO」の社員の「ENAME」「HIREDATE」を表示しなさい。
設問3
EMP表とDEPT表から、社員が一人も存在しない「DEPTNO」「DNAME」を表示しなさい。
設問4
EMP表から、「DEPTNO」が20の社員の中で一番「SAL」を多くもらっている人よりも高額の「SAL」をもらっている社員の「ENAME」「SAL」を表示しなさい。

[ TOP ]