学习如何在 ABAP 内部表中聚合和分组数据。
你的类会收到一个名为 initial_numbers 的内部表。它有两列:GROUP和NUMBER。
TYPES: BEGIN OF initial_numbers_type,
group TYPE group,
number TYPE i,
END OF initial_numbers_type,
initial_numbers TYPE STANDARD TABLE OF initial_numbers_type WITH EMPTY KEY.
表中的数据分为三组:A、B 和 C。每组都有多条记录。
| GROUP | NUMBER |
|---|---|
| A | 10 |
| B | 5 |
| A | 6 |
| C | 22 |
| A | 13 |
| C | 500 |
你的任务是返回一个内部表,每组一条记录。这条记录应包含该组在原始表中的记录数(COUNT)、该组所有 NUMBER 值的总和(SUM)、该组中的最小值(MIN)、该组中的最大值(MAX),以及该组所有值的平均值(AVERAGE)。
预期返回的表定义如下:
TYPES: BEGIN OF aggregated_data_type,
group TYPE group,
count TYPE i,
sum TYPE i,
min TYPE i,
max TYPE i,
average TYPE f,
END OF aggregated_data_type,
aggregated_data TYPE STANDARD TABLE OF aggregated_data_Type WITH EMPTY KEY.
在 ABAP 中完成这项任务有很多种方式。你能多高效地完成它?你能做到只读取表中每条记录一次吗?