Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OraLessons-I / Les-04-Using the Group Functions.doc
Скачиваний:
14
Добавлен:
20.03.2015
Размер:
161.79 Кб
Скачать

1.3 Использование функций min и max.

Функции MINиMAXможно использовать с числовыми данными, символьными данными и данными типа даты.

Пример 1

SELECT MIN(hire_date), MAX(hire_date)

FROM employees;

Результат:

MIN(HIRE_

MAX(HIRE_

17-JUN-87

21-APR-00

Пример 2

SELECT MIN(last_name), MAX(last_name)

FROM employees;

Результат:

MIN(LAST_NAME)

MAX(LAST_NAME)

Abel

Zlotkey

1.4 Использование функции count.

Используются 3 формата функции COUNT:

  1. COUNT(*)

  2. COUNT(expr)

  3. COUNT(DISTINCT expr)

COUNT(*)– возвращает количество строк в таблице, которые удовлетворяют ограничениям, заданным в командеSELECT. При этом учитываются и строки-дубликаты и строки с неопределёнными значениями. Если командаSELECTвключает предложениеWHERE, COUNT(*)возвращает количество строк, удовлетворяющих условию в предложенииWHERE.

COUNT(expr)возвращает количество строк с определёнными значениями (не NULL), заданными выражениемexpr.

COUNT(DISTINCT expr)возвращает количество уникальных, определённых значений (не NULL) в столбце, заданном выражениемexpr.

Пример 1

SELECT COUNT(*)

FROM employees

WHERE department_id = 50;

Результат:

COUNT(*)

----------

45

Пример 2

SELECT COUNT(commission_pct)

FROM employees

WHERE department_id = 80;

Результат:

COUNT(COMMISSION_PCT)

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

34

Пример 3

SELECT COUNT(*)

FROM employees;

Результат:

COUNT(*)

----------

107

Пример 4

SELECT COUNT(department_id)

FROM employees;

Результат:

COUNT(DEPARTMENT_ID)

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

106

Пример 5

SELECT COUNT(DISTINCT department_id)

FROM employees;

Результат:

COUNT(DISTINCTDEPARTMENT_ID)

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

11

1.5 Функции агрегирования и неопределённые значения.

Все функции агрегирования, кроме COUNT(*), игнорируют неопределённые значения (NULL) в столбце.

Продемонстрируем на примере использование функции AVG.

SELECT AVG(commission_pct)

FROM employees;

Результат:

AVG(COMMISSION_PCT)

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

.222857143

Здесь среднее вычисляется как частное от деления общей суммы комиссионных, выплаченных всем служащим,на количество служащих, получающих комиссионные.

SELECT AVG(nvl(commission_pct, 0))

FROM employees

Результат:

AVG(NVL(COMMISSION_PCT,0))

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

.072897196

Здесь среднее вычисляется как частное от деления общей суммы комиссионных, выплаченных всем служащим,на общее количество служащих в компании.

Функция NVLзаставляет функции агрегирования включать в обработку неопределённые значения.

2. Создание групп данных.

DEPARTMENT_ID

SALARY

90

24000

90

17000

90

17000

60

9000

60

6000

DEPARTMENT_ID

AVG(SALARY)

10

4400

50

3500

60

6400

80

1033.33

90

19333.33

60

4200

Средний оклад

50

5800

в таблице

50

3500

EMPLOYEES

50

3100

по каждому

50

2600

отделу

50

2500

80

10500

80

11000

80

8600

10

4400

Соседние файлы в папке OraLessons-I