Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Фраза GROUP BY




SQL-функции

 

В SQL предусматривается ряд специальных стандартных функций (SQL-функций), показанных на рис. 2.1,б. Кроме специального случая COUNT(*) каждая из этих функций оперирует с совокупностью значений столбца некоторой таблицы и создает единственное значение, определяемое так:

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

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

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

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

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

 

Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения.

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

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

 

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

Это можно легко сделать с помощью предложения:

SELECT ПР, SUM(К_во)

FROM Поставки

GROUP BY ПР;

Результат показан на рис. 2.6,а.

+-------------------------------------------------------+

¦ а) б) в) г) ¦

¦ ПР ПС ПР Цена К_во ПР ПР ¦

¦ -- ---- -- -- ----- ---- -- ---- -- ---- ¦

¦ 9 0 1 9 -0- -0- 1 370 9 0 ¦

¦ 11 150 3 9 -0- -0- 2 0 11 150 ¦

¦ 12 30 5 9 -0- -0- 3 250 12 30 ¦

¦ 15 370 1 11 1.50 50 4 100 15 70 ¦

¦ 1 370 5 11 -0- -0- 5 170 1 370 ¦

¦ 3 250 6 11 -0- -0- 6 220 3 250 ¦

¦ 5 170 8 11 1.00 100 7 200 5 70 ¦

¦ 6 220 1 12 3.00 10 8 150 6 140 ¦

¦ 8 150 3 12 2.50 20 9 0 8 150 ¦

¦ 7 200 6 12 -0- -0- 10 220 7 200 ¦

¦ 2 0 1 15 2.00 170 11 150 2 0 ¦

¦ 4 100 3 15 1.50 200 12 30 4 100 ¦

¦ 13 190 2 1 3.60 300 13 190 13 190 ¦

¦ 14 70 7 1 4.20 70 14 70 14 70 ¦

¦ 16 250 2 3 -0- -0- 15 370 16 250 ¦

¦ 17 50 7 3 4.00 250 16 250 17 50 ¦

¦ 10 220... 17 50 10 220 ¦

+-------------------------------------------------------+

Рис. 2.6. Иллюстрации к фразе GROUP BY

 

Фраза GROUP BY (группировать по) инициирует перекомпоновку указанной во FROM таблицы по группам, каждая из которых имеет одинаковые значения в столбце, указанном в GROUP BY. В рассматриваемом примере строки таблицы Поставки группируются так, что в одной группе содержатся все строки для продукта с ПР=1, в другой - для продукта с ПР=2 и т.д. (см. рис. 2.6,б). Далее к каждой группе применяется фраза SELECT. Каждое выражение в этой фразе должно принимать единственное значение для группы, т.е. оно может быть либо значением столбца, указанного в GROUP BY, либо арифметическим выражением, включающим это значение, либо константой, либо одной из стандартных функций, которая оперирует всеми значениями столбца в группе и сводит эти значения к единственному значению (например, сумме).

Отметим, что фраза GROUP BY не предполагает ORDER BY. Чтобы гарантировать упорядочение по ПР результата рассматриваемого примера (рис. 2.6,в) следует дать запрос

SELECT ПР, SUM(К_во)

FROM Поставки

GROUP BY ПР

ORDER BY ПР;

 

Наконец, отметим, что строки таблицы можно группировать по любой комбинации ее столбцов. Так, по запросу

SELECT Т, БЛ, COUNT(БЛ)

FROM Заказ

GROUP BY Т, БЛ;

можно узнать коды и количество порций блюд, заказанных отдыхающими пансионата (32 человека) на каждую из трапез следующего дня:

Т БЛ COUNT(БЛ)

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

1 3 18

1 6 14

1 19 17

1 21 15

...

Если в запросе используются фразы WHERE и GROUP BY, то строки, не удовлетворяющие фразе WHERE, исключаются до выполнения группирования.

Например, выдать для каждого продукта его код и общий объем возможных поставок, учитывая временную недееспособность поставщика с ПС=2:

SELECT ПР, SUM(К_во)

FROM Поставки

WHERE ПС <> 2

GROUP BY ПР;

 

Результат, приведенный на рис. 2.6,г, отличается от результата (рис. 2.6,а) аналогичного запроса для всех поставщиков объемом поставок продуктов с кодами 15, 5 и 6.

 

12. Связанные таблицы. Ключи. Виды ключей.

Встроенные средства взаимодействия MS Access со внешними СУБД с использованием интерфейса ODBC снимают ограничения, присущие Microsoft Jet Database Engine. Инструменты MS Access, которые позволяют реализовать такое взаимодействие, называются «связанные таблицы» (связь с таблицей СУБД) и «запросы к серверу» (запрос на диалекте SQL, который «понимает» СУБД).

Ключи:

Ключом называют один либо несколько столбцов необходимых для идентификации записей таблицы.

Виды ключей:

1) потенциальные (обладают следующими свойствами):

а) уникальность – обеспечивает наличие одной и только одной записи в таблице с данным значением потенциального ключа.

Б) неизбыточность означает, что, если из состава ключа исключить какой-либо столбец, то ключ потеряет уникальность.

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

Если предметная область не предполагает наличие поля обеспечивающего уникальность записи, то в качестве потенциального ключа добавляют числовое поле имеющее тип данных «счетчик».

Такой тип данных не предполагает редактирования пользователем и обеспечивает автоматическое увеличение значения поля при добавлении следующей записи на единицу (обеспечение уникальности записи на уровне СУБД).

3) внешние ключи используются для установления связи с первичным ключом другой таблицы, в этом случае поле может иметь содержательный смысл (наименование товара) либо быть искусственным полем имеющим тип данных «счетчик».

4) вторичные ключи (индексы) связаны с полями, часто использованными при поиске или сортировке записей. В отличие от первичных ключей поля вторичных ключей могут содержать не уникальные значения.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 1296; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.