[SQL 3-1] Presenting Data
안녕하세요^^
오늘은 쿼리의 결과를 report로 보여줄 때 나타낼 수 있는 옵션에 대해 알아보도록 하겠습니다.
특히, report되는 데이터의 순서와 formats, labels, title에 대해 예제를 통해 알아보도록 하겠습니다.
지난 시간 다루었던 PAYROLLMASTER 테이블을 이용하여 예제를 통하여 설명하도록 하겠습니다.
Payrollmaster 데이터는 148개의 관측치를 갖고, 6개의 변수를 갖습니다.
이 결과는 PROC CONTENTS를 이용하여 살펴본 변수와 속성 리스트 입니다.
간단히, 상위 10개의 데이터를 먼저 살펴보면 아래와 같습니다.
Report1: Salary가 높은 사람부터 나열하는 방법
먼저, 결과를 report할 때, 변수 값을 기준으로 순서를 정하는 것은 order by절을 사용합니다.
Order by절 뒤에 변수명을 쓰면 default로는 변수 값 기준 오름차순으로 report를 작성합니다.
예를 들어,
위와 같이 작성한다면, Salary를 기준으로 오름차순으로 report를 작성합니다.
결과적으로는 상위 10개의 값만 report하면, 아래와 같은 결과를 얻게 됩니다.
따라서, report1에서 Salary가 높은 사람부터 나열하는 방법으로 report하려면,
order by절에 descending(내림차순) 옵션을 지정해야 합니다.
이 때 사용하는 keyword가 DESC입니다.
위와 같이 order by절에 desc옵션을 주면 아래와 같이, Salary가 높은 사람부터 report가 작성됩니다.
SELECT절에 언급하지 않은 변수명이라도 FROM절 뒤에 나오는 테이블 내에 있는 변수라면, ORDER BY절에 사용할 수 있습니다.
또한, 두 개의 columns를 order by절에 사용한다면, ,(comma)로 구분하여 작성합니다.
예를 들면,
JobCode 별로 Salary가 높은 사람 순으로 나열을 해보도록 하겠습니다.
아래와 같이 코드를 작성하면,
JobCode를 알파벳순으로 먼저 정렬한 뒤, JobCode 내에서 Salary가 높은 사람부터 낮은 사람 순으로 나열하게 됩니다.
그 결과는 아래와 같습니다.
Report2: label, format, title 지정하는 방법
먼저, label이나 format을 지정할 때에는, SELECT문에 변수를 작성한 뒤에 작성합니다.
예를 들어,
위의 코드는 EmpID에 ‘Employee ID’라는 label을 작성하고,
Salary*0.2인 값에 ‘Bonus’라는 label을 작성하고
format은 dollar9.1로 달러 표시에 소수점 첫 번째 자리까지를 나타내도록 작성하였습니다.
그 결과는 아래와 같습니다.
이제, title을 작성하는 방법에 대해 알아보도록 하겠습니다.
Title과 footnote를 작성하는 문장은 select문장 이전에 작성해야 합니다.
또한, select문장에서 as를 사용하지 않고, ,(comma)로 구분한다면 label없이 작성됩니다.
예를 들어,
위의 작성된 코드는,
Title을 ‘Salary and Bonus’로 작성하고,
EmpID에 ‘Employee ID’라는 label을 작성하고,
Salary와 Bonus값 사이에 ‘Bonus is: ‘라는 column을 추가하고
Bonus라는 label은 제거합니다.
위 코드의 결과는 아래와 같습니다.
또한 아래의 코드처럼,
Proc sql의 옵션으로 number을 작성하면 row number가 결과에 함께 보여집니다.
이상 쿼리의 결과를 report로 보여줄 때 나타낼 수 있는 여러 가지 상황에 대해 알아보았습니다.
감사합니다^^
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.