배움터  
  HOME > 배움터 > Daily Tip
Daily Tip

제품:   Access 버전:   공통
검색어:   상위, 추출
제목:   상위 n 개의 데이터만 추출하기
     
 

New Page 2
  STEP> 따라하기

※ 아래 Daily Tip은 염기웅님이 제공해주신 내용입니다

비디오 대여점에 가 보면 ‘인기 비디오 TOP 20’ 혹은 ‘최신 비디오 10선’ 같은 포스터가 붙어 있는 것을 볼 수 있습니다. 이처럼 상위의 n 개의 레코드만 추출하는 것은 일반적으로 널리 사용되고 있으며 액세스를 이용해서도 손쉽게 구할 수 있습니다.

우선 예제 파일에서 q우수고객Top5 쿼리를 살펴보기 바랍니다.

우수고객은, 판매 실적이 쌓여 있는 데이터에서 고객별로 실적을 합하고, 그 합한 실적이 큰 고객을 추출함으로써 구할 수 있습니다.

다음 그림은 고객별 실적을 구하는 쿼리입니다. 고객번호와 회사명을 묶어주었고, 단가*수량의 합으로 총 판매 금액을 집계하였습니다.

이 쿼리의 결과는 다음과 같습니다. 일반적으로 많이 구하는 쿼리이고, 만드는 방법 역시 크게 어렵지 않으므로 자세한 설명은 생략합니다.

이 쿼리에서 약간의 속성을 변경하기만 하면 우수고객 TOP 5 같은 목록도 쉽게 구할 수 있습니다.

이 쿼리를 디자인 보기로 연 다음, 도구모음에서 속성 창 아이콘( )을 클릭하면 쿼리의 속성이 나타납니다. 이 때 속성창의 이름이 필드 속성으로 되어 있으면 쿼리 디자인 창의 빈 영역을 클릭하여 쿼리 속성으로 보이게 해야 합니다.

쿼리 속성 창에서 상위 값 속성을 5로 바꾸어 줍니다. 이렇게 하면 상위 5개의 값만 살펴볼 수 있습니다.

상위 5개의 레코드가 추출되었습니다. 여기서 주의할 사항은 상위 5개라고 하여 컴퓨터가 알아서 값이 큰 5개의 레코드를 추출해 주지는 않는다는 점입니다. 여기서 ‘상위’라는 의미는 출력된 데이터 중 처음부터 5개까지를 의미합니다.

따라서 다음의 결과는 정확히 판매금액 1위~5위라고 생각할 수 없는 데이터입니다. 실제로 판매금액 1위~5위의 데이터를 추출하고 싶다면 Amounts 필드를 내림차순으로 정렬해 주어야 합니다.

이번에는 레코드 개수로 구하는 것이 아니고, %로 구해보도록 하겠습니다. '상위 n 개의 레코드'도 의미 있는 데이터 집합이지만 ‘상위 n%의 레코드’ 역시 의미 있는 데이터 집합입니다. 방법은 비슷합니다. 상위 값 속성에서 % 값을 입력하면 됩니다. 다음 그림과 같이 입력하면 상위 10%의 레코드를 추출합니다.

9개의 레코드가 추출되었습니다. 데이터베이스에 등록된 전체 고객의 숫자는 89개이므로 그의 10%인 9개가 추출되었습니다.