Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные_задания / Лабораторная работа 6

.docx
Скачиваний:
20
Добавлен:
15.06.2014
Размер:
16.3 Кб
Скачать

Лабораторная работа №11. Агрегирование данных. Статистические функции SQL

Цель работы

Научиться осуществлять выборку и статистическую обработку информации из базы данных.

Указания к работе

В стандарте языка SQL определен набор средств, позволяющих расширить возможности обработки данных (помимо возможности использования вычислимых полей). Это так называемые SQL-функции, которые можно применить, например, для статистической обработки.

Ниже приведен список основных SQL-функций и краткое их описание (в различных СУБД могут поддерживаться и другие функции, например RAND()):

  • SUM - сумма значений в столбце,

  • AVG - среднее значение в столбце,

  • MAX - самое большое значение в столбце,

  • MIN - самое малое значение в столбце,

  • COUNT - число значений в столбце.

Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения. Функции MAX и MIN могут обрабатывать и строковые данные. Функция COUNT не привязана к типам данных, поскольку вычисляет только количество не пустых строк.

Например:

SELECT SUM(count) AS 'Всего единиц на складе' FROM goods;

SELECT COUNT(count) AS 'Всего наименований' FROM goods;

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

Например:

SELECT SUM(coast*count) AS Итого FROM goods;

SELECT SUM(count) AS 'Всего единиц на складе:', SUM(cost*count) AS 'На общую сумму:', AVG(cost) AS 'При средней цене:' FROM goods;

Аргументу всех функций, кроме COUNT(*), может предшествовать ключевое слово DISTINCT.

Например, приведенный ниже запрос вернет количество производителей, чьи товары представлены в прайсе:

SELECT COUNT(DISTINCT vendor) FROM goods;

Специальная функция COUNT(*) служит для подсчета всех без исключения строк в таблице (включая дубликаты).

SELECT COUNT(*) FROM goods;

В результирующем наборе простого запроса SELECT нельзя получить столбцы, не являющиеся аргументами SQL-функций. Например, в одном запросе нельзя получить информацию о производителях (их коде) и количестве товаров, поставляемых ими:

SELECT vendor, COUNT(vendor) FROM goods;

В результате выполнения будет выведено сообщение об ошибке, поскольку запрос подразумевает одновременно вывод множества значений для поля vendor и единственного результирующего значения, возвращаемого функцией COUNT. Такого рода запросы реализуются при использовании фразы GROUP BY (лаб.работа № 7).

Задания к работе

  1. Составить и выполнить по 2-3 простых запроса с использованием каждой из SQL-функций

  2. Составить и выполнить по 2-3 запроса на объединение таблиц с использованием каждой из SQL-функций.