Читаем SQL за 24 часа полностью

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

SELECT AVG(COST)

FROM PRODUCTS_TBL;

AVG(COST)

-----------

13.5891667

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

В следующем примере в одном запросе используются две функции. Поскольку одним служащим платят ставку, а другим - почасово, можно подсчитать средние значения и для столбца PAY_RATE, и для столбца SALARY.

SELECT AVG(PAY_RATE), AVG(SALARY)

FROM PRODUCTSJTBL;

AVG(PAY_RATE) AVG(SALARY)

13.5833333 30000

Функция MAX

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

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

Пример______________________________Значение____________________

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

FROM EMPLOYEE_PAY_TBL;

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

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

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

SELECT MAX(COST)

FROM PRODUCTS_TBL;

MAX(COST)

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

59.99

Функция 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? Если нет, то что в них следует исправить?

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных