Chapter 2. Performing Advanced Queries Using PROC SQL (4)

Enhancing Query Output 

쿼리 아웃풋에 관한 내용입니다. 먼저 아래 코드를 살펴보죠. 결과값으로 15개만 출력하고자 하고요. sasuser라이브러리에 있는 payrollmaster란 데이터를 불러오는데, SELECT 구문을 통해 그 데이터에 있는 empid, jobcode, salary 세 개의 열을 불러오고요. 다시 salary에 0.10을 곱한 값을 Bonus라는 새로운 변수의 열을 만들어줍니다. Where구문으로 salary 값이 75000 이상만 보여지게 하고요. 그리고 order by 구문을 이용해서 salry값은 내림차순(DESC)으로 합니다. 



결과값은 다음과 같습니다. 이 결과값을 출력할때 예를들어 보너스에 있는 값들의 소숫점자리 수라던가, 테이블의 제목을 넣거나 하는등의 일을 추가적으로 할 수 있습니다. 


(1) Specifying Column Formats and Labels 

우선 default값으로는, 기존에 불러오는 데이타의 포멧이 사용되어지고요. 만약 포멧팅이나 label을 설정해주고 싶으면 LABEL =  또는 FORMAT = 이런식으로 설정하면 됩니다. 이때 SELECT 구문 다음에 설정해줘야합니다. 

예를들어, 라벨 그러니까 변수 이름을 새롭게 설정해주고 싶으면~ 

SELECT empid label = 'Employee ID', 

             jobdode label = 'Job Code', 

             salary, 

empid는 불러오는 데이터에 있는 변수이름이고요. 이 변수이름을 Employee ID라고 바꾸고 싶으면 label을 사용하면 됩니다. 자세한 코드는 다음과 같아요. 




특정 열의 값의 포멧을 바꾸고 싶다면 다음처럼 지정해주면 됩니다.

Bonus를 새롭게 만들고, 이때 포맷을 설정해주고 싶으면 SELECT구문 안에서, 새롭게 만든 열 이름 다음에 format = 을 이용해서 지정하면 됩니다. 




(2) Specifying Titles and Footnotes 

아웃풋에 제목이나 풋노트를 넣고싶다면 다음처럼 사용하면 됩니다. 이때 가장 중요한건 위치!! 인데요. 이 명령어를 어디에 둬야하는지가 제일 중요합니다. PROC SQL 다음에 TITLE이용해서 제목을 지정합니다.     

            



위에 코드보면 제목 두개 넣고 empid, jobcode의 열 이름을 바꿨고요. format을 이용해서 Bonus의 포맷도 바꿔줬습니다. 그래서 결과값은 다음과 같아요. 변수이름 바뀌었고, Bonus는 $사인 생기고 소숫점 두자리까지 표시 되었네요. 




만약 아래 결과 그림처럼 새로운 열을 만들어서 Bonus라는 열의 이름을 없애고 대신 각 행마다 bonus is 라고 넣고 싶다면 어떻게 하면 될까요. 



아래 코드처럼, SELECT구문에서 변수로 넣고자하는 열을 지정해주고요. 

그 다음 열에 넣을 문구를 따옴표 안에 넣어줍니다. 'bonos is;', 라고 하면 위에 아웃풋처럼 Salary열 그 다음 열에, 각 행마다 bonus is: 라는 구문이 들어갑니다. 콤마를 넣어줬기때문에 salary*.10값은 그 다음 열에 들어가게 되는거고요. 




 # sas 자격증, SAS advaced, SAS advanced programming, SAS prep guide, 자격증 

반응형

+ Recent posts