Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Функция min

Функция MIN используется для подсчета минимума для значений заданной группы строк. Значения NULL при этом игнорируются. Можно использовать также ключевое слово DISTINCT, но поскольку повторно встречающиеся значения на значение минимума не влияют, это ключевое слово оказывается в данном случае бесполезным.

MIN([ DISTINCT ] имя_столбца )

Пример_________________________________Значение_____________________

SELECT MIN (SALARY)                            Нахождение минимальной зарплаты

FROM EMPLOYEE_PAY_TBL;

SELECT MIN (DISTINCT SALARY)          Нахождение минимальной зарплаты без уче-

FROM EMPLOYEE_PAY_TBL;                  та повторяющихся значений

Подсчитаем минимум всех значений стоимости товаров из таблицы PRODUCTSJTBL.

SELECT MIN(COST) FROM PRODUCTS_TBL;

MIN(COST) 

-----------

       1.05

При использовании итоговых функций с ключевым словом DISTINCT не забывайте о том, что в этом случае запрос может возвращать неверные результаты. Ведь основной задачей этих функций является получение итоговых подсчетов для всех строк данных таблицы.

Наконец, рассмотрим пример комбинирования итоговых функций с арифметическими операциями.

SELECT COUNT(ORD_NUM), SUM(QTY),  SUM(QTY) / COUNT(ORD_NUM) AVG_QTY

FROM ORDERS_TBL;

COUNT(ORD_NUM)    SUM(QTY)     AVG_QTY

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

                       7          160     22.85743

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

Резюме

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

Итоговые функции являются первыми из рассмотренных нами функций SQL, но они не единственные и существует множество других. Итоговые функции используются также для группирования значений, что предполагается рассмотреть в ходе следующего урока. По мере изучения других функций, вы обнаружите, что в основном они имеют похожий синтаксис и что лежащие в их основе концепции достаточно просты.

  Вопросы и ответы

Почему при использовании функций MIN и МАХ значение NULL игнорируется?

Значение NULL означает, что в поле ничего нет.

Почему при использовании функции COUNT тип данных не играет значения?

Функция COUNT просто считает строки.

 

  Практикум

  Тесты

1. Верно ли следующее утверждение: "Функция AVG возвращает среднее для значений всех строк, включая значения NULL?"

2. Верно ли следующее утверждение: "Функция зим используется для суммирования итоговых значений по столбцам?"

3. Верно ли следующее утверждение: ''Функция COUNT (* ) подсчитывает число всех строк в таблице?"

4. Будут ли работать следующие операторы SELECT? Если нет, то что в них следует исправить?

  • SELECT COUNT * FROM EMPLOYEE_PAY_TBL;

  • SELECT COUNT(EMPLOYEE_ID), SALARY FROM EMPLOYEE_PAY_TBL;

  • SELECT MIN(BONUS), MAX(SALARY) FROM EMPLOYEE_PAY_TBL  WHERE SALARY > 20000;

  Упражнения

1. Рассмотрите следующую таблицу PRODUCTS_TBL.

EMP_ID    POSITION    DATE_HIRE  PAV_RATE  DATE_LAST  SALARY  BONUS

311549902 МАРКЕТИНГ   23-МАЙ-89            01-МАЙ-99  30000   2000

442346889 РУК.ГРУППЫ  17-ИЮН-90   14.75    01-ИЮН-99

213764555 МЕНЕДЖЕР    14-АВГ-94            01-АВГ-99  40000   3000

313782439 ПРОДАВЕЦ    28-ИЮН-97                       20000   1000

220984332 ДОСТАВКА    22-ИЮЛ-96    11      01-ИЮЛ-99

443679012 ДОСТАВКА    14-ЯНВ-91    15      01-ЯНВ-99

6 строк выбраны.

Постройте операторы SQL, позволяющие найти следующее.

  1. Среднюю зарплату (SALARY).

  2. Максимальную премию (BONUS).

  3. Сумму всех выплат по зарплате.

  4. Минимальную почасовую оплату (PAY_RATE).

  5. Общее число строк в таблице.

InterBase

AVG()