|
Программирование >> Исключение дубликатов строк
Простои суммо Существует два вида статистики: та, которую вы ищете, и та, которую вы выдумываете . Рекс Стаут, Смерть нищенки (из цикла о Ниро Вульфе) Вопросы, россмотривоемые в донной глове: RrperoTHbie функции /1спользовони0 огрвготных функций в фильтрох риллбры ОПбрОТОрОВ /1тоги Зодочи для соллостоятельного решения еперь вам известно как выбрать нужные столбцы в запросе, определить выражения, добавляюш.ие дополнительные уровни подробностей, соединить соответствующие таблицы, которые предоставляют нужные столбцы, и определить условия для фильтрации данных, отправленных в набор результатов. Все эти методы были показаны для того, чтобы научить вас извлекать подробную информацию из одной или нескольких таблиц в базе данных. В этой и последующих главах показано, как вернуться на шаг обратно и увидеть данные с птичьего полета . Из этой главы можно узнать, как использовать агрегатные функции, чтобы получить основную суммарную информацию. В главе 13 будет показано, как организовать данные в группы в условии GROUP BY оператора SELECT, а в главе 14 будут представлены различные методы фильтрации, которые можно применить к данным после их группирования. Пгреготные функции Запросы, с которыми работали до сих пор, требовали ответов, включающих значения отдельных столбцов, из строк возвращенных условиями FROM и WHERE. Однако часто встречаются запросы, которые для получения ответа требуют вычисления значений по нескольким строкам. Сколько наших клиентов ответ в Сиэтле? Какова наименьшая и наибольшая цена, установленная для шлема в вашей инвентарной ведомости? Сколько курсов лекций читает Майкл Хернандес? Во сколько начинается самая первая лекция? Какова средняя продолоюительность лекции ? Какова обитая сумма для заказа номер 12? Стандарт SQL обеспечивает совокупность агрегатных функций, которая позволяет вычислить отдельное значение для строк из набора результата или из значений, возвращенных типизированным выражением. Агрегатную функцию можно применить ко всем строкам или значениям или с помощью усювия WHERE применить ее к конкретному множеству строк или значений. Например, можно применить агрегатную функцию для определения наибольшего или наименьшего значения типизированного выражения, подсчета количества строк в наборе результата или вычисления общей суммы, используя только определенные 31ачения из типизированного выражения. На рис. 12.1 представлен синтаксис для всех агрегатных функций. ArperotHbte функции count (*) count SUM AVG MAX L distinct Типи$ир ованное выражение псевдоним Рис. 12.1. Синтаксическая диаграмма для агрегатных функций Агрегатные функции имеют очень простой и непосредственный синтаксис. В данной главе показано, как использовать эти функции в условии SELECT, а в главе 14 изучается использование этой функции в условии HAVING. Каждая агрегатная функция возвращает единственное значение независимо от того, обрабатываются ли строки из набора результата или значения, возвращенные типизированным выражением. За исключением функции COUNT(*), все агрегатные функции автоматически игнорируют значения Null. В условии SELECT одновременно можно использовать несколько агрегатных функций и даже можно смешивать типизированные выражения, содержащие агрегатные функции, с типизированными выражениями, содержащими литеральные значения. Однако не допускается смешивание типизированных выражении, содержаш,их агрегатные функции, с типизированными выражениями, содержаш,ими ссылки на столбец, за исключением случая, если эти последние также появляются в спецификациях объединения в группы (см. главу 13). Рассмотрим каждую из этих агрегатных функций и их использование для ответа на запрос. Подсчет строк и зночений в COUNT Стандарт SQL определяет два варианта функции COUNT. COUNT(*) обрабатывает строки в наборе результатов, а COUNT {типизированное выражение), обрабатывает значения, возвраш,енные типизированным выражением. COUNT(*) используется для определения количества строк в наборе результатов. Функция COUNT(*) подсчитывает все строки в набор результатов, включая избыточные строки, содержаш,ие значения Null. Вот простой пример вопросов, на которые можно получить ответ с помощ,ью этой функции. Внимание! В этой главе используется метод Запрос/Преобразование/ Уточнение/SQL , введенный в главе 4. Во всех примерах предполагается, что концепции, рассмотренные в предыдуш,их главах, тш,ательно изучены и поняты, особенно главы по JOIN и подзапросам. Show те the total number of employees we have in our company . ( Показать общее количество сотрудников в нашей компании .) Преобразование: Select the count of employees from the employees table (Выбрать количество сотрудников из таблицы Уточнение: Сотрудники ) Select the count of employees (*) from the employees table (Выбрать количество (*) из Сотрудники ) SELECT COUNT (*) FROM Employees Здесь в уточнении используется * для указания того, что требуется подсчитать все строки в таблице Employees. Эта практика полезна при работе с запросами подобного типа, потому что помогает гарантировать, что используется правильная функция COUNT. Оператор SELECT в этом примере формирует набор результатов, состояш,ий из строки из одного столбца, содержаш,ей цифровое значение, которое представляет обш,ее количество строк в таблице Employees. Ограничения на количество строк, обрабатываемых функцией COUNT(*), отсутствует. Строки, которые должны подсчитываться функцией COUNT(*), указываются использованием условия WHERE. Например, вот как определяется оператор
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |