[SQL 2-3] Specifying Rows
안녕하세요^^
오늘은 rows를 subset하는 방법에 대해 더 자세히 알아보도록 하겠습니다.
지난 시간 다루었던 PAYROLLMASTER 테이블을 이용하여 예제를 통하여 설명하도록 하겠습니다.
Payrollmaster 데이터는 148개의 관측치를 갖고, 6개의 변수를 갖습니다.
이 결과는 PROC CONTENTS를 이용하여 살펴본 변수와 속성 리스트 입니다.
간단히, 상위 10개의 데이터를 먼저 살펴보면 아래와 같습니다.
지난 시간 WHERE절에 대해 소개하고, 여러 가지 연산자에 대해 간략히 알아보았습니다.
이번 시간, 계산하여 새롭게 만든 columns에 대해 where절에서 조건을 주는 방법에 대해 알아보도록 하겠습니다.
아래의 결과처럼,
Salary의 20%를 Bonus로 받는다고 하고, Bonus가 $30,000보다 큰 사람의 정보를 얻고자 합니다.
위의 결과를 얻기 위해,
SELECT문장에 Salary의 20%를 Bonus라는 변수로 저장하고,
Bonus가 $30,000보다 큰 사람에 대한 조건을 where절에 작성하였습니다.
그 결과 SAS log창에 아래와 같은 에러 메세지를 얻습니다.
이와 같은 에러를 얻게 되는 이유는 코드를 작성한 순서와는 다르게,
코드가 실행되는 순서는 where절이 select문 이전에 실행되기 때문입니다.
따라서, Bonus 변수가 select문에서 계산하여 만든 변수라는 것을 언급해야 합니다.
이 때 사용되는 keyword는 calculated 입니다.
즉, 아래와 같이 작성한다면,
Salary의 20%를 Bonus로 받는다고 하고, Bonus가 $30,000보다 큰 사람의 정보를 얻을 수 있습니다.
Calculated는 from절에서만 사용되는 것이 아니라, SELECT문에서도 사용할 수 있습니다.
계산을 통해 만들어진 변수를 다시 계산에 사용하는 경우, calculated를 사용하여야 합니다.
Calculated를 사용하지 않으면, 위에서 보았던 에러와 같은 에러 메세지를 얻게 됩니다.
이상 rows를 subset하는 방법에 더 자세히 대해 알아보았습니다.
감사합니다^^
Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.
Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.