русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 498; Нарушение авторских прав


Для группировки данных в запросе select используется конструкция group by, в которой должны быть перечислены те же столбцы, что и после select. Ниже приведен пример вывода данных по группам для таблицы bills.

-- таблица счетовcreate table bills(id integer,d date, -- дата счетаsumm double precision ,-- сумма счетаconstraint pk_bills primary key (id)); -- вставка данныхinsert into bills values(1, date '2008-01-01', 5.5);insert into bills values(2, date '2008-02-01', 3.14);insert into bills values(3, date '2008-03-01', 10.14);insert into bills values(4, date '2008-01-01', 7.2);insert into bills values(5, date '2008-02-01', 6.4);insert into bills values(6, date '2008-03-01', 2.5);commit; -- вывод данных по группамselect t.d, t.summ from bills t group by t.d, t.summ

Сами по себе группы редко используются, и предыдущий пример выборки можно заменить сортировкой. Другое дело, если необходимо воспользоваться одной из групповых функций, называемых агрегатными:

· avg([DISTINCT|ALL] column) - среднее значение по указанному столбцу;

· count(*|[DISTINCT|ALL] соlumn) - количество элементов в выборке или в группе определяемой указанным столбцом;

· sum([DISTINCT | ALL] соlumn) - сумма значений указанного столбца;

· max(соlumn) - максимальное значение в столбце;

· min(соlumn) - минимальное значение в столбце.

Ключевое слово DISTINCT позволяет игнорировать повторные значения в столбце, ALL обрабатывает все значения в столбце (по умолчанию), * позволяет включить в обработку поля с null значением. В MySQL между именем функции и скобкой не должно быть пробелов. Ниже приведен пример использования агрегатных функций в качестве выбираемых данных. Если агрегатная функция используется в выборке без group by, то она применяется ко всем записям выборки, иначе для каждой группы в отдельности. И в любом случае в перечислении select нельзя смешивать групповые столбцы с не групповыми.



-- статистические данные по всем месяцамselect count(*) as "число записей", max(t.summ) as "макс. сумма", min(t.summ) as "мин. сумма", avg(t.summ) as "средняя сумма", sum(t.summ) as "общая сумма" from bills t; -- статистические данные по каждому месяцуselect t.d as "месяц", count(1) as "число записей", max(t.summ) as "макс. сумма", min(t.summ) as "мин. сумма", avg(t.summ) as "средняя сумма", sum(t.summ) as "общая сумма" from bills t group by t.d

Агрегатные функции можно использовать в выражениях условия в конструкции having для отбора группы.

-- отбираем группы у которых общая сумма больше 12select t.d as "месяц", count(*) as "число записей", max(t.summ) as "макс. сумма", min(t.summ) as "мин. сумма", avg(t.summ) as "средняя сумма", sum(t.summ) as "общая сумма" from bills t group by t.dhaving sum(t.summ)>12


<== предыдущая лекция | следующая лекция ==>
Соединения | Операции над выборками


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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