Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
327.17 Кб
Скачать

Функция 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'.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]