본문 바로가기
🛠️Skill/SQL

[SQL문법] ORDER BY 데이터 정렬하기

by Istj_eff 2022. 10. 5.

1. 오름차순 정렬 (ASC ; Ascending) - 디폴트가 ASC

SELECT *
FROM 테이블 이름 ORDER BY 컬럼이름1 (ASC) ; -- 생략 가

 

▶ 컬럼이 여러개일때 ASC 예제

SELECT *
FROM STOCK_INFO
ORDER BY REGION, MKT_CAPITALIZATION_USD ; -- REGION먼저 오름차순후에 MKT 오름차순한다

 


 

2. 내림차순 정렬 (DESC ; Descending)

SELECT *
FROM 테이블 이름 ORDER BY 컬럼이름1 DESC ;

 DESC 예제

SELECT *
FROM STOCK_INFO
ORDER BY MKT_CAPITALIZATION_USD DESC -- 내림차순
LIMIT 10 ; -- 탑 10만 뽑고싶을때 행 개수 제한

 

▶ 컬럼이 여러개일때

SELECT *
FROM STOCK_INFO
ORDER BY REGION DESC, MKT_CAPITALIZATION_USD DESC; -- 컬럼 두개 다 DESC 써줘야 두개 다 내림차순해줌


# 컬럼마다 다르게 정렬
SELECT *
FROM STOCK_INFO
ORDER BY REGION, MKT_CAPITALIZATION_USD DESC; -- REGION은 오름차순, MKT는 내림차순됨


# 컬럼을 숫자로 지정해서 정렬하기 (가독성 떨어짐_비추천)
SELECT region, id, indcode, ticker, name, mkt_capitalization_usd
FROM STOCK_INFO
ORDER BY 1, 6; -- 1번,6번 컬럼을 오름차순으로 정렬

ORDER BY 1, 6 DESC; -- 1번컬럼은 오름차순, 6번 컬럼은 내림차순으로 정렬

 


 

문제

1) ETF_Info 테이블에서 Asset_Type과 Name을 기준으로 정렬한 값을 조회해보세요.

# 방법1
SELECT id, ticker, name, currency, asset_type, geo_focus -- * 으로 해도됨
FROM ETF_INFO
ORDER BY ASSET_TYPE, NAME ; -- 오름차순정렬

ORDER BY ASSET_TYPE DESC, NAME ; -- ASEST_TYPE만 내림차순, NAME은 오름차순 정렬


# 방법2
SELECT id, ticker, name, currency, asset_type, geo_focus
FROM ETF_INFO
ORDER BY 3, 5 ;

 

2) Financial_Info 테이블에서 Retained Earnings 값을 기준으로 상위 10개의 데이터만 조회해보세요.

SELECT *
FROM FINANCIAL_INFO
WHERE NAME_ = 'RETAINED EARNINGS' 
ORDER BY VALUE_ DESC 
LIMIT 10 ;

 

 

 

댓글