Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Агрегатные функции и группировка




Функции в SQL представляются ключевыми словами и используются для математических преобразований данных в столбце с целью их соответствующего представления при выводе. Функция — это команда, всегда используемая в связи с именем столбца или выражением. В SQL имеется несколько типов функций. Агрегатные функции: • COUNT

• SUM• MAX• MIN• AVG

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

Синтаксис select COUNT [ (*) | (DISTINCT | ALL) (имя_столбца)

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

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

Синтаксис SUM ([ DISTINCT ] имя_столбца)

При использовании sum тип значения в столбце предполагается числовым. Ее нельзя использовать по отношению к столбцам с символьными значениями или значениями дат и времени.

Функция AVG используется для подсчета среднего для значений заданной группы строк. При использовании с ключевым словом DISTINCT повторно встречающиеся значения в среднем не учитываются.

Синтаксис AVG([ DISTINCT ] имя_столбца)

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

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

Функция MIN аналогична предыдущей MIN([ DISTINCT ] имя_столбца)

Резюме Агрегатные функции несложно использовать и они могут оказаться весьма полезными. При использовании агрегатных функций значение NULL не учитывается — исключением является функция COUNT в формате COUNT (*).

Группирование данных — это размещение данных в столбцах с повторяющимися значениями в определенном логичном порядке. Оно осуществляется с помощью выражения GROUP BY в операторе SELECT. Ключевое слово GROUP BY должно следовать за выражением WHERE и предшествовать ключевому слову ORDER BY.

Синтаксис SELECT столбец1, столбец2 FROM таблица WHERE условия

GROUP BY столбец1, столбец2 ORDER BY столбец1, столбец2;

При использовании в операторе SELECT ключевого слова GROUP BY должны соблюдаться некоторые правила. В частности, имена выбранных для отображения столбцов должны присутствовать и в выражении ключевого слова GROUP BY, за исключением тех, к которым применены агрегатные функции. Столбцы в выражении ключевого слова GROUP BY не обязательно должны быть представлены в том же порядке, что и в выражении ключевого слова SELECT. Но если имя столбца указано в выражении ключевого слова SELECT, имя этого столбца должно присутствовать и в выражении ключевого слова GROUP BY

В отличие от выражения ключевого слова ORDER BY, в выражении ключевого слова GROUP BY указать порядок столбцов с помощью их номеров нельзя — за исключением того случая, когда используется ключевое слово UNION и имена всех столбцов разные.

Ключевое слово HAVING используется в операторе SELECT вместе с ключевым словом GROUP BY, чтобы указать какие из групп должны быть представлены в выводе.

Синтаксис

SELECT столбец1, столбец2 FROM таблица WHERE условия

GROUP BY столбец1, столбец2 HAVING условия ORDER BY столбец1, столбец2

Резюме: Ключевое слово GROUP BY используется, главным образом, с агрегатными функциями SQL типа SUM, AVG, MAX, MIN и COUNT. Ключевое слово GROUP BY подобно ключевому слову ORDER BY в том смысле, что оба они сортируют выводимые данные. Ключевое слово GROUP BY предназначено для сортировки данных по группам, но может использоваться и для обычной сортировки данных, хотя последнее проще сделать с помощью ключевого слова ORDER BY. Ключевое слово HAVING используется в операторе SELECT вместе с ключевым словом GROUP BY, чтобы задать условия отбора для создаваемых групп.




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


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


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



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




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