Ansicht
Dokumentation

ABENCDS_AVG_AS_V1 - CDS AVG AS V1

ABENCDS_AVG_AS_V1 - CDS AVG AS V1

PERFORM Short Reference   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DDIC-basierte View, AVG, AS

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

Wirkung

Aggregatausdruck AVG einer mit Angabe eines Datentyps dtype. Der Datentyp bestimmt den Ergebnistyp, in dem der Durchschnittswert zurückgegeben wird.

Für den Operand operand kann das Gleiche wie in allen Aggregatausdrücken angegeben werden, mit der Ausnahme, dass noch keine Fallunterscheidung CASE möglich ist. Der Datentyp von operand muss numerisch mit einem der Typen INT1, INT2, INT4, DEC, CURR, QUAN oder FLTP sein. operand kann auch den Datentyp INT8 haben, aber in diesem Fall ist der Zusatz AS obligatorisch.

Der Datentyp dtype kann den eingebauten numerischen Typ DEC, CURR, QUAN, DECFLOAT16, DECFLOAT34 oder FLTP haben. Der Datentyp FLTP kann jedoch nur für Operanden vom Typ FLTP angegeben werden. Der Datentyp dtype kann wie folgt angegeben werden:

Die folgende Tabelle zeigt die Syntax zur Angabe der eingebauten Datentypen:

dtype Dictionary-Typ
abap.dec(len,decimals) DEC der Länge len mit decimals Nachkommastellen
abap.curr(len,decimals) CURR der Länge len mit decimals Nachkommastellen
abap.quan(len,decimals) QUAN der Länge len mit decimals Nachkommastellen
abap.fltp$[(16,16)$] FLTP

Der Wertebereich des Datentyps dtype muss den Wertebereich des Operandentyps umfassen:

  • Ist operand ein Integertyp, muss ein Typ dtype vom Typ DEC, CURR, QUAN mindestens soviele Vorkommastellen haben, wie der Wertebereich des jeweiligen Integertyps benötigt, d.h. 3 bei INT1, 5 bei INT2, 10 bei INT4 und 19 bei INT8. Die Anzahl der Nachkommastellen ist beliebig.
  • Ist operand vom Typ DEC, CURR, QUAN muss ein Typ dtype vom Typ DEC, CURR, QUAN mindestens genauso viele Vor- und Nachkommastellen haben.
  • Ist operand vom Typ FLTP muss auch für dtype dieser Typ angegeben werden..

Falls der Durchschnittswert nicht exakt im Datentyp dtype darstellbar ist, wird das Ergebnis kaufmännisch gerundet.

Hinweise

  • Der Zusatz AS zu AVG schließt für Durchschnittswerte die Lücke, dass FLTP nicht mit CAST in andere numerische Datentypen gecasted werden kann.
  • Da Durchschnittswerte in alle Regel Nachkommastellen haben, werden für dtype keine Integertypen unterstützt. Bei Bedarf kann der Typ DEC ohne Nachkommastellen verwendet werden.
  • Ein Aggregatausdruck AVG mit dem Zusatz AS dtype kann gemäß dieses Typs in einem CAST-Ausdruck verwendet werden.
  • Die tatsächliche Berechnung des Durchschnittswerts in Abhängigkeit der beteiligten Datentypen ist plattformabhängig. Deshalb kann es während der Berechnung zu plattformabhängigen Unter- und Überläufen und zu entsprechenden Ausnahmen kommen. Um Ausnahmen sicher zu verhindern, sollte die Summe der Werte, für die der Durchschnittswert berechnet wird, innerhalb des Wertebereichs von dtype liegen.
  • Mit der expliziten Angabe von FLTP für Operanden vom Typ FLTP wird erreicht, dass das Ergebnis von AVG an jeder Operandenposition tatsächlich von diesem Typ ist, was ansonsten nicht garantiert ist.

Beispiel

Die folgende CDS-View demonstriert verschiedene Verwendungen des Aggregatausdrucks AVG. Das Programm DEMO_CDS_AVG greift auf die View zu. Der Durchschnittswert wird ohne und mit dem Zusatz DISTINCT berechnet und in verschiedenen Typen zurückgegeben.






ROGBILLS - Synchronize billing plans   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8922 Date: 20240523 Time: 172259     sap01-206 ( 104 ms )