BookmarkSubscribeRSS Feed

PROC SQL- Order by

Started ‎03-20-2024 by
Modified ‎03-20-2024 by
Views 993

 

Order by

 

SELECT 문의 맨 마지막에 위치하며 데이터를 내림차순 또는 오름차순 정렬할 때 사용.

기본 Syntax는 다음과 같습니다.

 

SELECT * FROM table_name
ORDER BY column_name (ASC, DESC);

 

 

다중정렬을 할 때도, Order by를 사용할 수 있습니다.

 

SELECT * FROM table_name
ORDER By col1 DESC col2 DESC;

 

위의 Syntax는 col1을 기준으로 내림차순으로 정렬하고, col1이 같은 값에 한해서 col2를 기준으로 내림차순으로 정렬합니다.

 

 

 

image.png

 

 

위의 데이터는 가상의 데이터로 10명의 이름(Name) 직업(Occupation)으로 구성되어 있습니다.

 

[SAS Code]

예시1

 

FILENAME REFFILE '/home/u45061472/occupations.xlsx';

PROC IMPORT DATAFILE=REFFILE
	DBMS=XLSX
	OUT=WORK.OCCUPATIONS;
	GETNAMES=YES;
RUN;

PROC CONTENTS DATA=WORK.OCCUPATION ; RUN;

PROC SQL;
SELECT CATS(NAME, '(', SUBSTR(OCCUPATION,1,1), ')') FROM WORK.OCCUPATIONS
ORDER BY NAME;

 

1. PROC IMPORT: 외부 데이터를 불러오기 위한 procedure로 DBMS에 파일 형식, OUT에 sas 내부에 있는 work라이브러리의 occupation 로 데이터를 옮기고, getnames는 첫번째 행을 변수명으로 불러오라는 명령문입니다.

2. ORDER BY: name 변수를 정렬합니다.

3. SUBSTR이란 start 부터 Length 만큼 부분 문자열을 추출

   

    SUBSTR('STAR', 2, 2) => 'TA'

    SUBSTR('START',1) => 'TART'

 

 

image (1).png

 결과

 

 

 

예시2

 

데이터에 직업군의 갯수를 구하고, 직업군의 앞글자를 내림차순으로 정렬합니다.

 

PROC SQL;
  select CATS('There are a total of  ' , count(*), lower(occupation) ,'s.')
  from occupations
  group by occupation
  ORDER BY occupation; 
QUIT;

1. CATS: SQL의 CONCAT함수로 여러 문자열을 하나로 합쳐주는 역할을 합니다. 파라미터를 두 개 이상 사용할 수 있어서 문장을 만들어 출력을 할 수도 있습니다.

 

image (2).png

 

 

PROC SQL;
  select CAT('There are a total of  ' , count(*), ' ',lower(occupation),'s.')
  from occupations
  group by occupation
  ORDER BY occupation; 
QUIT;

 

 

image.png

 

 

쿼리순서: FROM > GROUP BY > SELECT > ORDER BY

  1. FROM occupations: occupations 테이블에서 데이터를 가져옵니다.

  2. GROUP BY occupation: occupations 테이블에서 같은 occupation이 같은 데이터를 합쳐줍니다.

  3. SELECT: occupation 에 따라 합쳐진 데이터가 몇개인지 카운팅합니다.

  4. ORDER BY: occupation 칼럼을 오름차순으로 정렬해줍니다.

  5. CAT과 CATS 차이점: CAT 문자열을 그대로 이어붙이고, CATS는 문자열 끝에 있는 빈 칸을 제거한 후 이어붙입니다.

 

 

Contributors
Version history
Last update:
‎03-20-2024 06:04 AM
Updated by:

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Article Labels
Article Tags