Ansicht
Dokumentation

ABAPSELECT_AVG_AS - SELECT AVG AS

ABAPSELECT_AVG_AS - SELECT AVG AS

BAL Application Log Documentation   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- AVG, AS

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

Wirkung

Aggregatfunktion AVG in mit Angabe eines Datentyps dtype. Der Datentyp bestimmt den Ergebnistyp, in dem der Durchschnittswert zurückgegeben wird. Der Datentyp von col muss numerisch mit einem der Typen INT1, INT2, INT4, INT8, DEC, CURR, QUAN oder FLTP sein. Für sämtliche Typen für dezimale Gleitpunktzahlen kann der Zusatz AS noch nicht verwendet werden.

Der Datentyp dtype kann vom eingebauten numerischen Typ DEC, CURR, QUAN, DECFLOAT16, DECFLOAT34 oder FLTP sein, wobei der Datentyp FLTP aber nur für Operanden vom Typ FLTP angegeben werden kann. Der Datentyp dtype kann wie folgt angegeben werden:

  • DEC( len,decimals )
  • CURR( len,decimals )
  • QUAN( len,decimals )
  • D16N für DECFLOAT16
  • D34N für DECFLOAT34
  • FLTP

Mit len und decimals müssen Länge und Nachkommastellen angegeben werden. Für len und decimals können Literale oder Hostkonstanten vom ABAP-Typ b, s, i, int8 angegeben werden. Der Wertebereich des Datentyps dtype muss den Wertebereich des Operandentyps umfassen:

  • Ist col 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 col vom Typ DEC, CURR, QUAN muss ein Typ dtype vom Typ DEC, CURR, QUAN mindestens genauso viele Vor- und Nachkommastellen haben.
  • Ist col vom Typ FLTP muss auch für dtype dieser Typ angegeben werden..

Die Datentypen DECFLOAT16 und DECFLOAT34 können für alle erlaubten Datentypen von col außer FLTP 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 der standardmäßige Ergebnistyp 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 kann nicht ohne den Zusatz AS auf Operanden vom Datentyp INT8 angewendet werden. Mit dem Zusatz AS können auch Durchschnittswerte für Spalten vom Datentyp INT8 gebildet werden. Für die Typen DF16_..., DF34_... ist AVG dagegen nur ohne den Zusatz AS möglich.
  • 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.
  • Die Verwendung von D16N oder D34N führt zum strikten Modus der Syntaxprüfung ab Release.

Beispiel

Anwendung der Aggregatfunktion AVG auf eine Spalte der DDIC-Datenbanktabelle DEMO_EXPRESSIONS. Das Programm DEMO_SQL_AVG führt diesen Zugriff aus und stellt das Ergebnis dar.






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6463 Date: 20240523 Time: 143513     sap01-206 ( 97 ms )