在CDS中可以使用SQL中的一些常的聚合函数,比如;MIN,MAX,SUM,AVG,COUNT,等,以下具体介绍
MIN( operand ):
Returns the smallest value in operand,返回操作数中的最小值
MAX( operand )
Returns the greatest value in operand,返回操作数的最大值。
SUM( operand )
Calculates the sum of the values of operand,计算操作数的值之和
AVG( operand )
Calculates the average value of the values of operand,计算操作数的平均值
COUNT( *)
Returns the number of entries in the result set,返回结果集中的条目数
COUNT( DISTINCT operand )
Returns the number of distinct values of operand,返回操作数的不同值的数量
- An aggregate expression calculates a single value from an operand (operand) by calling an aggregate function for multiple rows of a results set. The figure above shows the possible aggregate functions.
- Aggregate expressions can be used in the field list of a SELECT statement or in an (optional) HAVING clause.
- 聚集表达式通过为结果集的多行调用聚集函数来从操作数(操作数)计算单个值。上图显示了可能的聚合函数。
- 可以在SELECT语句的字段列表或(可选)HAVING子句中使用聚合表达式。
Note: For aggregate functions in the field list, it is mandatory to provide an alias (addition AS).
注意:对于字段列表中的聚合函数,必须提供别名(附加AS)。
1.关于结果类型,适用以下规则
- 表达式AVG的结果类型为FLTP类型。
- 表达式COUNT和COUNTC(DISTINCT…)返回一个整数值。
- 表达式MIN,MAX和SUM具有与操作数相同的结果类型。
通常,操作数是当前CDS视图的数据源中的列或字段。操作数的其他选项是:
- 文字
- 区分大小写

上面的示例显示了每个聚合函数的一个示例。字段列表的最后两个元素是替代操作数的示例
2.分组Group BY后聚合
加成GROUP BY将结果集中那些与由field],field2,…指定的元素中内容相同的行分组为一行。必须使用与数据源中的字段相同的名称来指定字段。
必须在SELECT列表中使用聚合表达式定义在GROUP BY之后未指定的CDS视图的任何元素。相反,如果SELECT列表中包含聚合表达式,并且必须在GROUP BY之后指定所有未使用聚合表达式定义的元素,则必须使用GROUP BY。在GROUP BY之后不能指定文字和其他表达式。如果使用聚合表达式将预定义函数的表达式或调用指定为SELECT列表的元素,则必须在GROUP BY子句中指定所有使用的字段。

2.1.暗示:
ABAP DDL源代码编辑器能够从视图的元素列表中自动生成正确的GROUP BY子句。您可以按以下方式使用此功能:
- 转到编辑器下面的“问题”选项卡。
- 展开节点错误。
- 右键单击错误消息GROUP BY子句丢失,然后选择快速修复。
- 在下面的对话框窗口中,选择“完成”。
2.2.CDS中ABAP CDS的限制
在CDS中,使用聚合函数有一些限制。请在下面找到。
聚合函数的参数:
- ‘仅字段,文字,区分大小写
- 没有其他表达式或函数(例如avg(seatsmax — seatocc))
- 使用“在视图上查看”汇总计算结果
函数SUM的参数
- 必须是数字
- 不支持INT8,DFL16,DFL34。
空值
不在汇总中考虑
CDS查看扩展
字段列表中具有聚合的CDS视图无法扩展