SAS Tech & Tip

BookmarkSubscribeRSS Feed

SAS 실전 활용 가이드 4

Started ‎03-30-2025 by
Modified ‎03-30-2025 by
Views 1,699

지난 게시글에는 SAS의 사용법과 함께 실제 statement 를 활용해 데이터를 효과적으로 분석하고 직관적인 보고서를 작성하는 방법에 대해서 다루었습니다.

이를 통해 SAS를 활용한 데이터 분석이 단순한 코드 작성이 아니라, 데이터를 보다 쉽게 이해하고 활용하는 과정에 대해서 알 수 있었습니다.

이번 글에서는 새로운 데이터셋을 활용한 실전 사례를 통해 SAS의 강력한 분석 기능을 한층 더 심도 있게 익혀보겠습니다.

 

 

■ 분석 데이터

 

데이터셋은 총 4개 입니다.

 

 

DataSet 1. Customers

 

1055 개의 데이터와 4개의 칼럼(Customer_name, Province , Customer_Segment, id) 으로 구성되어 있습니다.

 

image.png

 

 

 

PROC IMPORT OUT=WORK.CUSTOMER
DATAFILE= 'C:/customers.xlsx'
DBMS=XLSX
REPLACE;
GETNAMES = YES;
RUN; 

proc print data = work.customer; run;

 

 

 

 

DataSet2. Product

 

1,093개의 데이터, 5개의 칼럼(Product_Category, Product_Sub_Category, Product_Name, Product_Container, Id)으로 구성되어 있습니다.

 

image.png

 

 

DstaSet3. Sales

 

2,999개의 데이터, 21개의 칼럼(Row_ID, Order_ID, Order_Date, Order_Quantity, Sales, Discount , Ship_Mode, Profit, Unit_Price, Shipping_Cost, Customer_Name, Province, Customer_Segment, Product_Category, Product_Sub_Category, Product_Name, Product_Container, Product_Base_Margin, Ship_Date, customer_id, product_id) 으로 구성되어 있습니다.

 

 

image.png

 

 

 

 

DataSet4. Returns

 

572개의 데이터, 2개의 칼럼( Order ID, Status) 로 구성되어 있습니다.

 

image.png

 

 

위 4개의 데이터셋은 Customer I.D 칼럼과 Product 칼럼을 기반으로 서로 연결되어 있으며, 하나의 데이터로 병합할 수 있습니다.

 

 

■ 데이터 병합

 

 

PROC SQL;
CREATE TABLE MERGE_DATA AS
SELECT A.*, B.*, C.*
FROM WORK.SALES AS A
LEFT JOIN WORK.CUSTOMER AS B
ON A.CUSTOMER_ID = B.ID
LEFT JOIN WORK.PRODUCTS AS C
ON A.PRODUCT_ID = C.ID;
QUIT;

PROC PRINT DATA=MERGE_DATA (OBS=20); RUN;

 

 

image.png

 

 

  • CREATE TABLE MERGE_DATA: 새로운 테이블 MERGE_DATA를 생성하는 SQL 문입니다.

  • SELECT A.*, B.*, C.* : A(SALES), B(CUSTOMER),C(PRODUCTS) 테이블의 모든 컬럼을 선택합니다.

  • LEFT JOIN WORK.CUSTOMER AS B

ON A.CUSTOMER_ID = B.ID : SALES 테이블(A)의 CUSTOMER_ID 칼럼과 PRODUCTS 테이블(B) 의 ID 칼럼을 기준으로 병합니다.

■ 고객별 매출 집계

데이터를 병합하고 SQL을 활용하여 고객별 매출 데이터를 계산하려고 합니다.

 

 

PROC SQL;
CREATE TABLE WORK.PERCUS AS
SELECT CUSTOMER_NAME, SUM(PROFIT) AS PROFIT
FROM WORK.MERGE_DATA
GROUP BY CUSTOMER_NAME
ORDER BY PROFIT DESC;
QUIT;
RUN;

 

 

image.png

 

 

 

WORK라이브러리에 MERGE_DATA 테이블에서 고객(CUSTOMER_NAME)별 총 이익( SUM(PROFIT))을 계산하는 코드입니다.

Comments

안녕하세요. 기존에 WORK.SALE 로 명명하셨기에,  데이터 병합에 사용되는 프로그램 중 FROM WORK.SALES AS A 이 아닌 FROM WORK.SALE AS A로 해야 실행됩니다.

기존 [sas 실전 활용 가이드 3]에서는 work.sales라고 명명했지만, [실전 활용가이느 4]에서는 별개의 새로운 게시글로 데이터 병합시에 문제 없을것으로 판단됩니다! 

Version history
Last update:
‎03-30-2025 06:55 AM
Updated by:
Contributors

sas-innovate-white.png

Our biggest data and AI event of the year.

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.

 

Register now!

Article Tags