트랙
/
ABAP
ABAP
/
연습 문제
/
ITAB 집계
ITAB 집계

ITAB 집계

쉬움

지침

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에서 이 과제를 해내는 방법은 여러 가지예요. 얼마나 효율적으로 과제를 완수할 수 있을까요? 테이블의 각 레코드를 딱 한 번씩만 읽으면서 해낼 수 있나요?

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
ABAP Exercism

ITAB 집계 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 ABAP 트랙을 연습 문제 54개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.