Ansicht
Dokumentation

ABENCDS_AVG_AS_V2 - CDS AVG AS V2

ABENCDS_AVG_AS_V2 - CDS AVG AS V2

TXBHW - Original Tax Base Amount in Local Currency   BAL Application Log Documentation  
This documentation is copyright by SAP AG.
SAP E-Book

- CDS View Entity, AVG, AS

... AVG( $[DISTINCT$] operand AS dtype ) ...

Effect

Aggregate expression AVG of a CDS view entity specifying the data type dtype. The data type determines the result type in which the average value is returned.

The same can be specified for operand as for all aggregate expressions. The data type of operand must be numeric and have one of the types INT1, INT2, INT4, INT8, FLTP, DEC, CURR, QUAN, DECFLOAT16, and DECFLOAT34.

The data type dtype can have the built-in numeric type DEC, CURR, QUAN, DECFLOAT16, DECFLOAT34, or FLTP.

The data type dtype can be specified as follows:

The following table shows the syntax for specifying built-in data types:

dtype Dictionary Type
abap.dec(len,decimals) DEC with length len and decimals decimal places
abap.curr(len,decimals) CURR with length len and decimals decimal places
abap.quan(len,decimals) QUAN with length len with decimals decimal places
abap.decfloat16$[(len,decimals)$] DECFLOAT16 with length len with decimals decimal places
abap.decfloat34$[(len,decimals)$] DECFLOAT34 with length len with decimals decimal places
abap.fltp$[(16,16)$] FLTP

The value range of the data type dtype must cover the value range of the operand type:

  • If operand is an integer type, a type dtype of type DEC or QUAN must have at least as many integer digits as is required by the value range of the respective integer type, that is, 3 for INT1, 5 for INT2, 10 for INT4, and 19 for INT8. There is no restriction on the number of decimal places.
  • If operand has type DEC or QUAN, then dtype of type DEC or QUAN must have at least as many integer digits and decimal places.
  • If operand has the data type DECFLOAT16, then dtype must be DECFLOAT16 or DECFLOAT34. If the operand has the data type DECFLOAT34, then the target data type dtype must also be DECFLOAT34.
  • If operand has type FLTP, this type must also be specified for dtype.
  • If operand has type CURR, this type must also be specified for dtype and the number of decimal places must match exactly.
  • If operand has any other type except CURR and dtype is specified as CURR, then dtype must have exactly two decimal places.

If the average value cannot be represented exactly in the data type dtype, the result is rounded commercially.

If operand is assigned a currency key using the annotation Semantics.amount.currencyCode, then the result field must also be assigned a currency key using the same annotation.

If operand is assigned a unit of measurement key using the annotation Semantics.quantity.unitofMeasure, then the result field must also be assigned a unit of measurement key using the same annotation.

Notes

  • The addition AS to AVG bridges the gap for average values where FLTP cannot be cast to other numeric data types with CAST.
  • Since average values usually have decimal places, integer types are not supported for dtype. If necessary, the type DEC can be used without decimal places.
  • An aggregate expression AVG with the addition AS dtype can be used in accordance with this type in a CAST expression.
  • The actual calculation of the average value (determined by the involved data types) is platform-dependent. This can produce underflows, overflows, and exceptions during the calculation. To prevent exceptions, the total of the values for which the average value is being calculated should be within the value range of dtype.

Example

The following CDS view entity demonstrates different uses of the aggregate expression AVG. The program DEMO_CDS_AVG_VE accesses the view. The average value is calculated with and without addition DISTINCT and is returned in various types. A built-in numeric function is used as operand to demonstrate the nesting of built-in functions.






General Data in Customer Master   Fill RESBD Structure from EBP Component Structure  
This documentation is copyright by SAP AG.

Length: 10518 Date: 20240329 Time: 001907     sap01-206 ( 114 ms )