Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
05.06.2015
Размер:
385 Кб
Скачать

7369 Smith 800

7499 ALLEN 1600

7521 WARD 1250

7566 JONES 2975

7654 MARTIN 1250

7698 BLAKE 2850

7782 CLARK 2450

7788 SCOTT 3000

7839 KING 5000

7844 TURNER 1500

7876 ADAMS 1100

7900 JAMES 950

7902 FORD 3000

7934 MILLER 1300

14 rows selected.

Здесь использовано то свойство типов данных, что сумма числа и NULL значения дает NULL значение.

Раздел 2

Функции Oracle sql

Q2_1

Вычислить средний размер комиссионных по сотрудникам , которые их получают

SQL> select avg(comm) from EMP;

AVG(COMM)

---------

550

Q2_2

Вычислить средний размер комиссионных по всем сотрудникам

SQL> select avg(nvl(comm,0)) from EMP;

AVG(NVL(COMM,0))

----------------

157.14286

Q2_3

Сумма окладов всех сотрудников

SQL> select sum(sal) as summa from EMP;

SUMMA

---------

29025

Q2_4

Минимальный и максимальный оклад клерков

SQL> select min(sal),max(sal) from EMP

where job='CLERK';

MIN(SAL) MAX(SAL)

--------- ---------

800 1300

Q2_5

Разбиение таблицы по значению поля разбиения с использованием GROUP BY

Средний оклад для каждой должности

SQL> select job,avg(sal) as middle

from EMP

group by job;

JOB MIDDLE

--------- ---------

ANALYST 3000

CLERK 1037.5

MANAGER 2758.3333

PRESIDENT 5000

SALESMAN 1400

Q2_6

Средний оклад по должностям внутри отделов

SQL> select DEPTNO dept,job,avg(sal) middle from EMP

group by DEPTNO,job;

DEPTNO JOB MIDDLE

--------- --------- ---------

10 CLERK 1300

10 MANAGER 2450

10 PRESIDENT 5000

20 ANALYST 3000

20 CLERK 950

20 MANAGER 2975

30 CLERK 950

30 MANAGER 2850

30 SALESMAN 1400