[SQL 8-3-2] 매크로를 SQL 프로시저에 연결하기 2
(Interfacing PROC SQL with the Macro Language 2)
안녕하세요 ^^
이번 시간에는 PROC SQL에서 SAS 매크로 변수를 생성하고 사용하는 방법을 공부해보겠습니다.
▶ PROC SQL에서 SAS 매크로 변수를 생성하기
▷ 먼저 PROC SQL에서 매크로 변수를 생성하는 방법을 이해해보겠습니다.
PROC SQL에서는 INTO 절(clause)을 사용하여, 매크로 변수를 만들고 값을 할당하거나 기존 매크로 변수 값을 업데이트할 수 있습니다.
INTO 절의 위치는 다음과 같이 SELECT 절 뒤에 와야 합니다.
SELECT 절과 INTO 절의 세부 프로그램 형식은 다음과 같습니다.
SQL 쿼리에 의해 반환된 첫 번째 행의 값(SELECT 절)을 하나 이상의 매크로 변수(INTO 절)에 저장합니다.
쿼리에서 반환된 추가 행의 데이터는 무시됩니다.
SELECT 절의 첫 번째 열의 값은 INTO 절에 나열된 첫 번째 매크로 변수에 저장됩니다.
아래에서 예제를 들어 적용해보겠습니다.
▷ Business Scenario는 영업부의 평균 급여 이상의 급여를 받는 영업부의 모든 직원을 나열하는 보고서를 작성하는 것입니다.
또한 부서의 평균 급여를 보고서의 제목에 포함시키고자 합니다.
비즈니스 시나리오를 수행하기 위해서 두 단계(STEP1, STEP2)를 거치겠습니다.
- STEP 1 : 영업부서의 평균 급여를 계산하고 이 값을 매크로 변수에 저장합니다.
%LET 문을 사용하여 Dept라는 이름의 매크로 변수에 Sales라는 문자열을 저장하였습니다.
다음으로 INTO 절에서 생성한 MeanSalary라는 매크로 변수에 평균 급여(SELECT 절의 avg(Salary)) 값을 저장하였습니다.
더불어 영업부라는 제한을 주기 위해 WHERE 절에서 Dept 매크로 변수를 지정하여 Sales 문자열을 가져오게 하였습니다.
- STEP 2 : 영업 부서의 평균 급여보다 많은 임금을 받는 직원을 나열하고, 제목에 부서명과 평균 급여를 포함합니다.
제목에 부서명을 포함시키기 위해 Title에 쌍따옴표(“”) 내에 매크로 변수 &Dept를 기입하고, 평균 급여을 포함시키기 위해 매크로 변수 &MeanSalary를 코딩하였습니다.
또한 부서명의 맨 앞 문자를 대문자로 만들어주는 PROPCASE 함수를 사용하여 영업부라는 조건을 주었으며,
(PROPCASE의 기능은 각 단어의 맨 앞 문자를 대문자로 바꾸어줍니다.
[Ex] ability is decided by one's own effort -> Ability Is Decided By One's Own Effort.)
Salary > &MeanSalary 조건을 주어 평균 급여 이상의 직원 자료를 추출하는 것을 확인할 수 있습니다.
결과를 보면, 영업부의 평균 급여 27503.06 달러($)가 포함되어 있는 것을 알 수 있습니다.
이상 PROC SQL에서 SAS 매크로 변수를 생성하고 활용해보았습니다..
여기서 SQL의 기초 강의를 마무리하겠습니다.
다음 시간부터는 SAS 프로그래밍의 고급편이 진행됩니다.
감사합니다 ^^
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.