با نحوهی تجمیع و گروهبندی دادهها در یک جدول داخلی 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 وجود دارد. چقدر میتوانید این کار را کارآمد انجام دهید؟ آیا میتوانید این کار را طوری انجام دهید که هر رکورد جدول را فقط یک بار بخوانید؟