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

Understanding How PROC SQL Processes Calculated Column

SELECT 구문을 통해 새로운 열(column)을 지정할 수 있는데요. 아래 예문을 봅시다~ 

sasuser라이브러리에 있는 marchflights데이타에서 flightnumber, date, destination 열을 불러오고요. 그리고 boarded, transferred, nonrevenue의 열을 합친걸 Total이라는 이름으로하는 변수또한 만들려고 합니다. 그러니까 총 4개의 열을 가진 데이타가 아웃풋으로 출력되겠네요. 


만약에 새롭게 만든 Total변수에 조건을 걸어보고 싶다고 합시다. 그래서 아래 그림처럼 SELECT구문 안에 WHERE 조건으로 100이하의 값을 출력하도록 한다면~ 아래처럼 코드를 적었다고 해요. 

그러면 에러메시지가 SAS log파일에 뜨게 됩니다. "The following columns where not found in the contributing tables: total." 이렇게요. 왜 에러가 뜨냐면 Total은 아웃풋으로 새롭게 만들 변수 이름입니다. 그래서 marchflights에는 Total이란 이름을 가진 열이 없어요. 그런데 저 위에처럼 코드를 입력하면 sasuser라이브러리에 있는 marchflight테이블에서 열의 이름이 Total을 찾아서 그 값의 100이하인걸 출력하려고 합니다. 그런데 marchflight테이블엔 Total이란 이름을 가진 열이 없어서 에러메시지가 뜨는겁니다. 


새로운 열을 만들고 그 열의 조건문을 걸고 싶을때!!! CALCULATED!! 라는 키워드가 필요합니다. 



Understanding  the Keyword CALCULATED!! 

calculate라는 키워드를 입력해서 수정된 SAS코드는 다음과 같고요. 이 코드를 돌려보면 아래처럼 결과값이 출력됩니다. 



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

반응형

+ Recent posts