Функция count в access

Функция count в access

Запросы позволяют не только выбирать записи из таблиц Access, но и вычислять различные статистические параметры. Например, можно подсчитать суммарное количество контактов и вывести даты первого и последнего контакта с каждым из людей, включенных в таблицу Контакты. Чтобы построить такой запрос в режиме конструктора, выполните следующие действия.

1. В окне базы данных щелкните на кнопке Запросы.

2. Дважды щелкните на значке Создание запроса в режиме конструктора.

3. В открывшемся окне диалога (рис. 17.6) выделите строку Контакты.

4. Щелчком на кнопке Добавить добавьте выбранную таблицу в верхнюю область конструктора запроса.

5. Выделите пункт Список и снова щелкните на кнопке Добавить.

6. Щелчком на кнопке Закрыть закройте окно диалога Добавление таблицы. Списки полей двух таблиц, соединенные линией связи, появятся в окне конструктора.

7. Щелкните на кнопке Групповые операции панели инструментов. В бланке запроса появится дополнительная строка Групповая операция, позволяющая выполнять статистические операции со значениями конкретных полей.

Рис. 17.6 . Добавление таблицы

8. Перетащите поле Фамилия в ячейку Поле первого столбца конструктора.

9. В ту же ячейку второго столбца перетащите поле Имя таблицы Контакты.

10. В третий, четвертый и пятый столбцы бланка запроса перетащите поле Дата таблицы Список (рис. 17.7).

Рис. 17.7. Запрос с групповыми операциями

11. В раскрывающемся списке ячейки Групповая операция третьего столб ца бланка запроса выберите пункт Min.

12. В той же ячейке четвертого столбца выберите пункт Мах.

13. В пятом столбце задайте групповую операцию Count. Групповые операции построенного запроса обработают все записи таблицы Список, соответствующие конкретному человеку из таблицы Контакты, и вместо самих данных таблицы Список выведут в соответствующее поле результата запроса только значение величины, вычисляемой по определенной формуле. Доступные групповые операции перечислены в табл. 17.1.

ТАБЛИЦА 17.1 . Групповые операции

Название Функция
Условие Режим задания условия отбора для поля, но которому не выполняется группировка. Access автоматически делает такое поле скрытым
Выражение Вычисляемое поле, значение которого рассчитывается по сложной формуле
Group By Поле, определяющее группу записей, по которой вычисляются статистические параметры. К одной группе относятся все записи, для которых значения поля с режимом Group By (Группировка) одинаковы
Last Последнее значение в группе
First Первое значение в группе
Var Вариация значений поля
StDev Стандартное отклонение величин ноля от среднего
Count Количество записей, соответствующее ноле которых не содержит величины Null
Мах Максимальное значение
Min Минимальное значение
Avg Среднее значение поля
Sum Сумма значений поля по всем записям

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

14. Щелкните на кнопке Вид, чтобы выполнить запрос. Появится таблица с пятью столбцами. Два первых столбца содержат фамилии и имена людей. По ним выполняется группировка, то есть расчет значений остальных полей запроса выполняется для записей таблицы Список, сопоставляемых с одним человеком. Как уже говорилось выше, соответствие контакта таблицы Список и человека из таблицы Контакты определяется полями Код_Контакты, с помощью которых осуществляется связь этих двух таблиц. Третий и четвертый столбцы запроса выводят соответственно дату первого (функция Min) и последнего (функция Мах) контакта с данным человеком. Пятый столбец содержит количество записей в таблице Список (функция Count), соответствующих. данному человеку, то есть число контактов с ним. Единственный недостаток построенного запроса — это непонятные имена столбцов. Давайте скорректируем их.

15. Щелчком на кнопке Вид вернитесь в конструктор запроса.

16. В ячейке Поле третьего столбца замените имя Дата на текст Дата первого контакта: Дата. Правая часть этого выражения, расположенная правее двоеточия, по-прежнему задает имя поля, а левая определяет название столбца результата запроса. Таким образом, любому столбцу запроса можно назначить произвольное имя.

17. В ячейке Поле четвертого столбца введите Дата последнего контакта: Дата.

18. В первой строке пятого столбца бланка запроса введите Число контактов: Дата.

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

19. Снова щелкните на кнопке Вид.

20. Закройте запрос.

21. Для сохранения изменений структуры щелкните на кнопке Да.

22. В окне диалога Сохранение введите имя Итоговый запрос и щелкните на кнопке ОК.

Агрегатные функции.

Итоговые запросы на чтение

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

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

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

Агрегаты могут представлять собой все строки таблицы или группы строк, созданные предложением GROUP BY (будет рассмотрено в п.13.7.2).

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

В SQL имеется пять стандартных агрегатных функций: SUM, AVG, MIN, MAX, COUNT.

SUM( ) вычисляет сумму всех значений в выражении;

AVG( ) вычисляет среднее всех значений в выражении;

MIN( ) находит наименьшее среди всех значений в выражении;

MAX( ) находит наибольшее среди всех значений в выражении;

COUNT( ) подсчитывает количество значений в выражении.

В качестве выражения чаще всего выступает имя столбца таблицы.

Функция COUNT(*) подсчитывает количество строк (т.е. учитывает и NULL).

Функция COUNT(DISTINCT ) подсчитывает количество разных значений в выражении.

Примечание 1.В Microsoft Access конструкция COUNT(DISTINCT ) не работает. Данная проблема решается применением вложенного запроса в предложении FROM.

Ограничения на использование агрегатных функций:

— агрегатные функции нельзя использовать в предложении WHERE (оно работает для одной строки, а не для агрегата);

— агрегатные функции нельзя вкладывать друг в друга (при необходимости можно использовать вложенные запросы);

— в предложении SELECT нельзя одновременно использоваться агрегатные функции и обычные имена столбцов (если только по этим столбцам не указана группировка GROUP BY)

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

Пример 29. Вычислить суммарную стоимость всех вызовов.

Пример 30. Вычислить средний возраст для контактов.

Пример 31. Вычислить минимальную и максимальную длительность исходящих вызовов.

SELECT MIN(DLIT), MAX(DLIT)

FROM VYZOVY V, TIPY_VYZ T

WHERE (V.TIP_ID=T.ID) AND (T.NAZV=’Исходящий’)

Пример 32. Вывести дату и время самого первого вызова.

Пример 33. Вычислить количество контактов старше 30 лет.

Пример 34. Вычислить количество мелодий, уже назначенных для какого-либо контакта.

Не работает в ACCESS:

SELECT COUNT(DISTINCT MEL_ID)

Работает в ACCESS:

FROM (SELECT DISTINCT MEL_ID

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Увлечёшься девушкой-вырастут хвосты, займёшься учебой-вырастут рога 10284 — | 7952 — или читать все.

Групповые операции в запросах Access

Сегодня поговорим на тему «Групповые операции в запросах Access». Групповые операции в запросах Access позволяют выделить группы записей с одинаковыми значениями в указанных полях и вычислить итоговые данные для каждой из групп по другим полям, используя одну из статистических функций. Статистические функции применимы, прежде всего, к полям с типом данных Числовой, Денежный, Дата/время.
В Access предусматривается девять статистических функций:

  • Sum — сумма значений некоторого поля для группы;
  • Avg — среднее от всех значений поля в группе;
  • Max, Min — максимальное, минимальное значение поля в группе;
  • Count — число значений поля в группе без учета пустых значений;
  • StDev — среднеквадратичное отклонение от среднего значения поля в группе;
  • Var — дисперсия значений поля в группе;
  • First и Last — значение поля из первой или последней записи в группе.

Результат запроса с использованием групповых операций содержит по одной записи для каждой группы. В запрос, прежде всего, включаются поля, по которым производится группировка, и поля, для которых выполняются статистические функции. Кроме этих полей в запрос могут включаться поля, по которым задаются условия отбора.
Рассмотрим конструирование однотабличного запроса с групповой операцией на примере таблицы ПОСТАВКА_ПЛАН.

Запрос с функцией Sum

Задача. Определите, какое суммарное количество каждого из товаров должно быть поставлено покупателям по договорам. Все данные о запланированном к по-ставке количестве товара указаны в таблице ПОСТАВКА_ПЛАН.

  1. Создайте в режиме конструктора запрос на выборку из таблицы ПОСТАВКА_ПЛАН.
  2. Из списка таблицы перетащите в бланк запроса поле КОД_ТОВ ― код товара. По этому полю будет производиться группировка записей таблицы.
  3. Перетащите в бланк запроса поле КОЛ_ПОСТ, по которому будет подсчитываться суммарное количество каждого из товаров, заказанных во всех договорах.
  4. Выполните команду Итоги (Totals) из группы Показать или скрыть (Show/Hide). В бланке запроса появится новая строка Групповая операция (Total) со значением Группировка (Group By) в обоих полях запроса.
  5. В столбце КОЛ_ПОСТ замените слово Группировка (Group By) на функцию Sum. Для этого вызовите список и выберите эту функцию. Бланк запроса примет вид, показанный на рис. 4.11.
  6. Для отображения результата запроса (рис. 4.12) щелкните на кнопке Выполнить (Run) в группе Результаты (Results).
  7. Замените подпись поля Sum-КОЛ_ПОСТ на Заказано товаров. Для этого перейдите в режим конструктора, в бланке запроса установите курсор мыши на поле КОЛ_ПОСТ и нажмите правую кнопку. В контекстном меню выберите Свойства (Properties). В окне Свойства поля (Field Properties) введите в строке Подпись (Caption) — Заказано товаров. Для открытия окна свойств может быть выполнена команда Страница свойств (Property Sheet) в группе Показать или скрыть (Show/Hide).


  1. Сохраните запрос под именем Заказано товаров.
  2. Чтобы подсчитать количество товаров, заказанных в каждом месяце, выполните группировку по двум полям: КОД_ТОВ и СРОК_ПОСТ, в котором хранится месяц поставки (рис. 4.13).
  3. Чтобы подсчитать количество товаров, заказанных в заданном месяце, предыдущий запрос дополните вводом параметра запроса в условие отбора (рис. 4.14).


Запрос с функцией Count

Задача. Определите, сколько раз отгружался товар по каждому из договоров. Факт отгрузки фиксируется в таблице НАКЛАДНАЯ.

  1. Создайте запрос на выборку на основе таблицы НАКЛАДНАЯ.
  2. Из списка полей таблицы НАКЛАДНАЯ перетащите в бланк запроса поле НОМ_ДОГ. По этому полю должна производиться группировка.
  3. По сути, смысл задачи сводится к подсчету в таблице числа строк с одинаковым номером договора, поэтому неважно по какому полю будет вычисляться функция Count. Перетащите в бланк запроса любое поле, например опять НОМ_ДОГ.
  4. Выполните команду Итоги (Totals) из группы Показать или скрыть (Show/Hide). Замените слово Группировка (Group By) в одном из столбцов с именем НОМ_ДОГ на функцию Count. Бланк запроса примет вид, показанный на рис. 4.15.

  1. Сохраните запрос под именем Число отгрузок по договорам. Выполните запрос. Результат запроса показан на рис. 4.16.


Для закрепления смотрим видеоурок:

Ссылка на основную публикацию
Фартуки для кухни отзывы какие лучше брать
Сегодня поговорим о самых популярных материалах для оформления рабочей зоны, сравним их и выясним какой же материал лучше всего подойдет...
Удобное компьютерное кресло отзывы
В общем, надоело мне с ноутбуком на кровати валяться, спину портить. Стол есть, 74см высотой. Сейчас сижу на офисном стуле,...
Удобный сайт для просмотра фильмов
Некоторые онлайн-кинотеатры радуют лицензионными бесплатными фильмами, однако за лучший контент придётся платить. В подборке Лайфхакера — несколько хороших сервисов с...
Фейк ава в вк парня
Фото девушек на аву Фото девушек на аву Здесь вы можете найти для себя много реальных фото на аву красивых...
Adblock detector