Share via


Configuring Measure Properties

Measures have properties that enable you to define how the measures function and to control how the measures appear to users.

Measure Properties

Measures inherit certain properties from the measure group of which they are a member, unless those properties are overridden at the measure level. Measure properties determine how a measure is aggregated, its data type, the name that is displayed to the user, the display folder in which the measure will appear, its format string, any measure expression, the underlying source column, and its visibility to users.

Property

Definition

AggregateFunction

Determines how measures are aggregated. For more information, see Aggregation Functions.

DataType

Specifies the data type of the column in the underlying fact table to which the measure is bound.

Description

Provides a description of the measure, which may be exposed in client applications.

DisplayFolder

Specifies the folder in which the measure will appear when users connect to the cube. When a cube has many measures, you can use display folders to categorize the measures and improve the user browsing experience.

FormatString

Determines the display format. For more information, see Display Formats.

ID

Displays the unique identifier (ID) of the measure. This property is read-only.

MeasureExpression

Specifies a Multidimensional Expressions (MDX) expression that defines the measure.

Name

Specifies the name of the measure.

Source

Specifies the column in the data source view to which the measure is bound.

Visible

Determines the visibility of the measure.

Aggregation Functions

Microsoft SQL Server Analysis Services provides functions to aggregate measures along the dimensions that are contained in measure groups. By default, measures are summed along each dimension. However, the AggregateFunction property lets you modify this behavior. The additivity of an aggregation function determines how the measure is aggregated across all the dimensions in the cube. Aggregation functions fall into three levels of additivity:

  • Additive
    An additive measure, also called a fully additive measure, can be aggregated along all the dimensions that are included in the measure group that contains the measure, without restriction.

  • Semiadditive
    A semiadditive measure can be aggregated along some, but not all, dimensions that are included in the measure group that contains the measure. For example, a measure that represents the quantity available for inventory can be aggregated along a geography dimension to produce a total quantity available for all warehouses, but the measure cannot be aggregated along a time dimension because the measure represents a periodic snapshot of quantities available. Aggregating such a measure along a time dimension would produce incorrect results.

  • Nonadditive
    A nonadditive measure cannot be aggregated along any dimension in the measure group that contains the measure. Instead, the measure must be individually calculated for each cell in the cube that represents the measure. For example, a calculated measure that returns a percentage, such as profit margin, cannot be aggregated from the percentage values of child members in any dimension.

The following table lists the aggregation functions in Analysis Services, and describes both the additivity and expected output of the function.

Aggregation function

Additivity

Returned value

Sum

Additive

Calculates the sum of values for all child members. This is the default aggregation function.

Count

Additive

Retrieves the count of all child members.

Min

Semiadditive

Retrieves the lowest value for all child members.

Max

Semiadditive

Retrieves the highest value for all child members.

DistinctCount

Nonadditive

Retrieves the count of all unique child members.

None

Nonadditive

No aggregation is performed, and all values for leaf and nonleaf members in a dimension are supplied directly from the fact table for the measure group that contains the measure. If no value can be read from the fact table for a member, the value for that member is set to null.

ByAccount

Semiadditive

Calculates the aggregation according to the aggregation function assigned to the account type for a member in an account dimension. If no account type dimension exists in the measure group, treated as the None aggregation function.

For more information about account dimensions, see Account (Analysis Services - Multidimensional Data).

AverageOfChildren

Semiadditive

Calculates the average of values for all non-empty child members.

FirstChild

Semiadditive

Retrieves the value of the first child member.

LastChild

Semiadditive

Retrieves the value of the last child member.

FirstNonEmpty

Semiadditive

Retrieves the value of the first non-empty child member.

LastNonEmpty

Semiadditive

Retrieves the value of the last non-empty child member.

Display Formats

You can select the format that is used to display measure values to users by using the FormatString property of the measure.

Although a list of display formats is provided, you can specify many additional formats that are not in the list. You can specify any named or user-defined format that is valid in Microsoft Visual Basic. The following table contains some examples of available named and user-defined formats. The table assumes that the regional setting in Control Panel on the client computer is English (United States).

Source data type

Format

Display format value

Example output

Numeric

Named

General Number

123456789

 

 

 

0

 

 

Fixed

123456789.00

 

 

 

0.00

 

User-defined

$#,#.00

$123,456,789.00

 

 

 

$0.00

 

 

#,#0.0000

123,456,789.0000

 

 

 

0.0000

Date/time

Named

Medium Date

31-Dec-99

 

 

Long Date

Friday, December 31, 1999

 

User-defined

mm/dd/yyyy

12/31/1999

 

 

mmm-dd-yyyy

Dec-31-1999

Boolean

Named

Yes/No

Yes

 

 

True/False

True

For more information about valid predefined and user-defined formats, search on "format function" in the Development Tools and Languages section of the MSDN Library.