🛠️Skill/SQL
[SQL문법] ORDER BY 데이터 정렬하기
Istj_eff
2022. 10. 5. 00:30
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 ;