Xbasic

# POP_STDDEV Function

Syntax

Population_Standard_Deviation as N = pop_stddev(N subexpr[,G over[,G each])

Arguments

subexpr

Any valid expression that includes a field or a combination of fields from the current table or set that specifies what you want to examine. Numeric

over

Optional. When to use the function (instead of on every record).

each

Optional. When to reset the value produced by the function to 0 (instead at the end of all records). 'Over' and 'Each' are optional parameters that define the range of records to summarize, and may or may not be required, depending upon the context of the summary calculation. Possible values for GRP >Group and GRP >Sub_Group include:

GRAND (all records)
The name of the current table
The name of a table in the current set
The name of a grouping level that is defined in a report layout
DETAIL (over the records in the detail section)

Description

Get the population standard deviation of subexpression over group 'over' sampled each group 'each'

Discussion

POP_STDDEV() returns the population standard deviation of the Expression evaluated for a group of records. The expression is evaluated for all the records in the sub-group that are related to the group's current record, and the population standard deviation for these records is returned. To follow this formula, compute the Average Value returned by the summary expression for all the records in the group. Then, for each record in the group, take the Average Value, subtract it from the Value of the summary expression for that record, and square the difference. Add all these resulting values together, divide this sum by the number of records in the group, and then compute the square root of that value. For example, to summarize the line-items in an invoice set, the Group Name parameter might be GRP >INV_ITEM. This means the Summary operation includes only those related child records from the INV_ITEM table. To summarize all the records in a table or set, use the name of the current or primary table as the group name. For example, GRP >INVOICE produces a summary result based upon all invoices. This function is a report writer function, not intended for table level field rules or other expressions. While the function may perform in some areas outside of the report writer, its use there is not supported.

### Example

Assume that an invoicing set consists of two tables. One holds invoices ( INVOICE ), and the other holds each invoice's line-items ( INV_ITEM ):

INVOICE
Description
INV_NO
CUST_ID and INV_TOTAL
I100

C001 10.00

I101

C003 25.50

I102

C001 100.75

I103

C004 32.50

I104

C002 110.25

I105

C005 98.35

INV_ITEM
Description
INV_NO
AMOUNT
I100

4.50

I100

5.50

I101

25.50

I102

3.25

I102

35.25

I102

62.25

I103

32.50

I104

110.25

I105

98.35

INVOICE is related to INV_ITEM through a one-to-many link on the INV_NO field. To find the population standard deviation of multiple line-item records for a particular invoice, use the following expressions:

```pop_stddev(INVITEM->AMOUNT, GRP -> INVHEAD) -> 0.50, if the current INV_NO is "I100"
pop_stddev(INVITEM->AMOUNT, GRP -> INVHEAD) -> 24.12, if the current INV_NO is "I102"```

Limitations

This function is a report writer function, not intended for table level field rules or other expressions.