Скачиваний:
25
Добавлен:
01.04.2014
Размер:
761.34 Кб
Скачать

************** Работа с sql **************

1. Напишите два запроса которые могли бы вывести все порядки

на 3 или 4 Октября 1990

2. Напишите запрос который выберет всех заказчиков обслуживаемых

продавцами Peel или Motika. ( Подсказка: из наших типовых таблиц,

поле snum связывает вторую таблицу с первой )

3. Напишите запрос, который может вывести всех заказчиков чьи

имена начинаются с буквы попадающей в диапазон от A до G.

4. Напишите запрос который выберет всех пользователей чьи имена

начинаются с буквы C.

5. Напишите запрос который выберет все порядки имеющие нулевые

значения или NULL в поле amt(сумма).

( См. Приложение A для ответов. )

6

Обобщение данных с помощью агрегатных функций

62 ПОНИМАНИЕ SQL

____________________________________________________________________

ГЛ. 6

В ЭТОЙ ГЛАВЕ, ВЫ ПЕРЕЙДЕТЕ ОТ ПРОСТОГО

использования запросов к извлечению значений из базы данных и опре-

делению, как вы можете использовать эти значения чтобы получить

из них информацию. Это делается с помощью агрегатных или общих

функций которые берут группы значений из поля и сводят их до

одиночного значения. Вы узнаете как использовать эти функции, как

определить группы значений к которым они будут применяться, и как

определить какие группы выбираются для вывода. Вы будете также

видеть при каких условиях вы сможете объединить значения поля с

этой полученной информацией в одиночном запросе.

==== ЧТО ТАКОЕ АГРЕГАТНЫЕ ФУНКЦИИ ? =====

Запросы могут производить обобщенное групповое значение полей

точно также как и значение одного поля. Это делает с помощью

агрегатых функций. Агрегатные функции производят одиночное

значение для всей группы таблицы. Имеется список этих функций:

* COUNT

производит номера строк или не-NULL значения полей которые выбрал

запрос.

* SUM

производит арифметическую сумму всех выбранных значений данного

поля.

* AVG

производит усреднение всех выбранных значений данного поля.

* MAX

производит наибольшее из всех выбранных значений данного поля.

* MIN

производит наименьшее из всех выбранных значений данного

поля.

КАК ИСПОЛЬЗОВАТЬ АГРЕГАТНЫЕ ФУНКЦИИ ?

Агрегатные функции используются подобно именам полей в предложении SELECT запроса, но с одним исключением, они берут имена поля как

аргументы. Только числовые поля могут использоваться с SUM и AVG.

С COUNT, MAX, и MIN, могут использоваться и числовые или

CУММИРОВАНИЕ ДАННЫХ

С ПОМОЩЬЮ АГРЕГАТНЫХ ФУНКЦИЙ 63

______________________________________________________________________

символьные поля. Когда они используются с символьными полями,

MAX и MIN будут транслировать их в эквивалент ASCII, который

должен сообщать, что MIN будет означать первое, а MAX последнее

значение в алфавитном порядке( выдача алфавитного упорядочения

обсуждается более подробно в Главе 4 ).

Чтобы найти SUM всех наших покупок в таблицы Порядков, мы можем

ввести следующий запрос, с его выводом в Рисунке 6.1:

SELECT SUM ((amt))

FROM Orders;

=============== SQL Execution Log ============

| |

| SELECT SUM (amt) |

| FROM Orders; |

| ==============================================|

| |

| ------- |

| 26658.4 |

| |

| |

===============================================

Рисунок 6.1: Выбор суммы

Это конечно, отличается от выбора поля при котором возвращается

одиночное значение, независимо от того сколько строк находится в

таблице. Из-за этого, агрегатные функции и поля не могут выбираться

одновременно, пока предложение GROUP BY (описанное далее)

не будет использовано.

Нахождение усредненой суммы - это похожая операция ( вывод

следующего запроса показывается в Рисунке 6.2 ):

SELECT AVG (amt)

FROM Orders;

Соседние файлы в папке ПОНИМАНИЕ SQL