- •Выборка данных
- •Оператор select
- •Выражения sql
- •Выражение from
- •Операции left join, right join
- •Операция inner join
- •Выражение in
- •Предикаты all, distinct, distinctrow, top
- •Объявление with owneraccess option
- •Выражение where
- •Операция Like
- •Операция In
- •Операция Between...And
- •Подзапрос
- •Выражение order by
- •Выражение group by
- •Выражение having
- •Оператор union
- •Оператор transform
- •Выражение procedure
- •Объявление parameters
- •Изменение данных
- •Оператор update
- •Оператор insert into
- •Оператор delete
- •Изменение структуры
- •Оператор select...Into
- •Оператор create table3
- •Выражение constraint4
- •Оператор alter table5
- •Оператор create index6
- •Оператор drop7
- •Агрегатные функции
- •Функция Count
- •Функция Avg
- •Функция Sum
- •Функции Var и VarP
- •Функции StDev и StDevP
- •Функции Min, Max
- •Функции First, Last
Функция Avg
Возвращают среднее арифметическое значение указанного поля. Формат
Avg(expr)
Аргумент expr – строка – имя поля или выражение, содержащее имя поля. Может содержать константы и имя функции (встроенной или определенной пользователем, но не агрегатной функции SQL).
Функция Avg определяют среднее арифметическое выборки или группы, игнорирует значения Null. Если выборка не определена, просматривается вся таблица. Можно использовать в свойстве SQL объекта QueryDef или при создании объекта Recordset, основанного на SQL запросе.
В Microsoft Access функцию Avg можно использовать в построителе запросов и опрераторе SQL, в т.ч. формируемым программно, а также в вычисляемых управляющих элементах форм и отчетов. В построителе запросов она вызывается кнопкой Totals на панели Query Design. Особенно полезна в перекрестных и итоговых запросах.
Пусть имеется таблица Orders с полями Freight и ShipCity, на основе которой создается запрос, выводящий среднюю стоимость доставки заказов, отправленных в каждый город. Создадим новый запрос, «перетащим» поле ShipCity в ячейку конструктора, в ячейку Total под ShipCity введем Group By. «Перетащим» Freight в следующую ячейку конструктора. Ячейку Total установим в Avg.
Текст запроса (в режиме SQL-просмотра):
SELECT ShipCity, Avg(Freight) AS AvgOfFreight FROM Orders GROUP BY ShipCity;
Для вывода результата в «вычисляемом» управляюшем элементе, например, текстовом поле, нужно присвоить его свойству ControlSource значение = Avg([Freight]). Число учитываемых записей можно ограничить в свойстве Filter формы.
В следующем примере вычисляется средняя стоимость доставки товаров, для которых она больше $100:
SELECT Avg([Freight]) AS [AverageFreight] FROM Orders WHERE [Freight] > 100;
Для вывода результата в «вычисляемом» управляюшем элементе, например, текстовом поле, нужно создать форму, ее свойству RecordSource присвоить «Orders», присвоить свойству ControlSource текстового поля значение =Avg([Freight]). Для учета только товаров со стоимостью доставки более $100, нужно присвоить ее свойству Filter значение [Freight] > 100.
Функция Sum
Вычисляет сумму значений указанного в запросе поля. Формат
Sum(expr)
Аргумент expr – строка – имя поля, содержащего подсчитываемые данные, или выражение, содержащее имя поля. Может содержать имя функции (встроенной или определенной пользователем, но не агрегатной функции SQL). Например,
SELECT Sum(UnitPrice * Quantity) AS [Total Revenue] FROM [Order Details];
– объем продаж.
Функция Sum игнорирует значения Null. Ее можно использовать в свойстве SQL объекта QueryDef или при создании объекта Recordset, основанного на SQL запросе.
В Microsoft Access функцию Sum можно использовать в построителе запросов и опрераторе SQL, в т.ч. формируемым программно, а также в вычисляемых управляющих элементах форм и отчетов. В построителе запросов она вызывается кнопкой Totals на панели Query Design. Особенно полезна в перекрестных и итоговых запросах.
Пусть имеется таблица Orders с полями Freight и ShipCity, на основе которой создается запрос, выводящий суммарную стоимость доставки заказов, отправленных в каждый город. Создадим новый запрос, «перетащим» поле ShipCity в ячейку конструктора, в ячейку Total под ShipCity введем Group By. «Перетащим» Freight в следующую ячейку конструктора. Ячейку Total установим в Sum.
Текст запроса (в режиме SQL-просмотра):
SELECT ShipCity, Sum(Freight) AS SumOfFreight FROM Orders GROUP BY ShipCity;
Для вывода результата в «вычисляемом» управляюшем элементе, например, текстовом поле, нужно присвоить его свойству ControlSource значение =Sum([Freight]). Число учитываемых записей можно ограничить в свойстве Filter формы.
В примере ниже предполагается, что таблица Orders имеет поля OrderID и ShipCountry, а таблица Order Details имеет поля UnitPrice и Quantity. В следующем примере вычисляется общая стоимость товаров из таблицы Orders, доставленных в United Kingdom:
SELECT Sum([UnitPrice]*[Quantity]) AS [TotalUKSales] FROM Orders INNER JOIN [Order Details] ON Orders.[OrderID] = [Order Details].[OrderID]
WHERE ([ShipCountry] = 'UK');
Для вывода результата в «вычисляемом» управляюшем элементе, например, текстовом поле, нужно присвоить его свойству ControlSource значение =Sum([UnitPrice]*[Quantity]). Для учета товаров только для United Kingdom, нужно установить свойство Filter формы в [ShipCountry] = 'UK'.
