КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |