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

Функции Var и VarP

Возвращают значение несмещенной и смещенной дисперсии указанного поля. Формат

Var(expr)

VarP(expr)

Аргумент expr – строка – имя поля, содержащего подсчитываемые данные, или выражение, содержащее имя поля. Может содержать имя функции (встроенной или определенной пользователем, но не агрегатной функции SQL).

Функция VarP производит оценку генеральной совокупности, Var – выборки из генеральной совокупности. Если запрос содержит менее 2 записей, обе возвращают Null. Можно использовать в свойстве SQL объекта QueryDef или при создании объекта Recordset, основанного на SQL запросе.

В Microsoft Access функции VarP и Var можно использовать в построителе запросов и опрераторе SQL, в т.ч. формируемым программно, а также в вычисляемых управляющих элементах форм и отчетов. В построителе запросов она вызывается кнопкой Totals на панели Query Design. Особенно полезна в перекрестных и итоговых запросах.

Пусть имеется таблица Orders с полями Freight и ShipCity, на основе которой создается запрос, выводящий разброс стоимости доставки заказов, отправленных в каждый город. Создадим новый запрос, «перетащим» поле ShipCity в ячейку конструктора, в ячейку Total под ShipCity введем Group By. «Перетащим» Freight в следующую ячейку конструктора, ячейку Total установим в Var. Запрос покажет разброс стоимости доставки заказов для каждого города. Его текст можно посмотреть в режиме SQL-просмотра:

SELECT ShipCity, Var(Freight) AS VarOfFreight FROM Orders GROUP BY ShipCity;

Для вывода результата в «вычисляемом» управляюшем элементе, например, текстовом поле, нужно присвоить его свойству ControlSource значение =Var([Freight]). Число учитываемых записей можно ограничить в свойстве Filter формы.

В следующем примере вычисляется разброс стоимости доставки в United Kingdom (вызывается процедура EnumFields из примера к FROM):

Sub VarX()

Dim dbs As Database, rst As Recordset

' Modify this line to include the path to Northwind on your computer.

Set dbs = OpenDatabase("Northwind.mdb")

' Calculate the variance of freight costs for orders shipped to

' the United Kingdom.

Set rst = dbs.OpenRecordset("SELECT Var(Freight) AS [UK Freight Variance] " _ & "FROM Orders WHERE ShipCountry = 'UK';")

rst.MoveLast ' Populate the Recordset.

' Call EnumFields to print the contents of the Recordset.

' Pass the Recordset object and desired field width.

EnumFields rst, 20

Debug.Print

Set rst = dbs.OpenRecordset("SELECT VarP(Freight) AS [UK Freight VarianceP] " _ & "FROM Orders WHERE ShipCountry = 'UK';")

rst.MoveLast ' Populate the Recordset.

' Call EnumFields to print the contents of the Recordset.

' Pass the Recordset object and desired field width.

EnumFields rst, 20

dbs.Close

End Sub

Функции StDev и StDevP

Возвращают значение несмещенного и смещенного стандартного отклонения указанного поля. Формат

StDev(expr)

StDevP(expr)

Аргумент expr – строка – имя поля, содержащего подсчитываемые данные, или выражение, содержащее имя поля. Может содержать имя функции (встроенной или определенной пользователем, но не агрегатной функции SQL).

Функция StDevP производит оценку генеральной совокупности, StDev– выборки из генеральной совокупности. Если запрос содержит менее 2 записей (или не содержит записей – для StDevP), обе возвращают Null. Можно использовать в свойстве SQL объекта QueryDef или при создании объекта Recordset, основанного на SQL запросе.

В Microsoft Access функции StDevP и StDev можно использовать в построителе запросов и операторе SQL, в т.ч. формируемым программно, а также в вычисляемых управляющих элементах форм и отчетов. В построителе запросов она вызывается кнопкой Totals на панели Query Design. Особенно полезна в перекрестных и итоговых запросах.

Пусть имеется таблица Orders с полями Freight и ShipCity, на основе которой создается запрос, выводящий стандартное отклонение стоимости доставки заказов, отправленных в каждый город. Создадим новый запрос, «перетащим» поле ShipCity в ячейку конструктора, в ячейку Total под ShipCity введем Group By. «Перетащим» Freight в следующую ячейку конструктора, ячейку Total установим в StDev. Запрос покажет стандартное отклонение стоимости доставки заказов для каждого города. Его текст можно посмотреть в режиме SQL-просмотра:

SELECT ShipCity, StDev(Freight) AS StDevOfFreight FROM Orders GROUP BY ShipCity;

Для вывода результата в «вычисляемом» управляюшем элементе, например, текстовом поле, нужно присвоить его свойству ControlSource значение = StDev([Freight]). Число учитываемых записей можно ограничить в свойстве Filter формы.

В следующем примере вычисляется стандартное отклонение стоимости доставки в United Kingdom:

SELECT StDev([Freight]) AS [FreightDev] FROM Orders WHERE [ShipCountry] = 'UK';

SELECT StDevP([Freight]) AS [FreightDevP] FROM Orders WHERE [ShipCountry] = 'UK';

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