본문 바로가기
  • Fearless
프로그래밍언어/SQL

[SQL] (2) 데이터 정렬하기

by Albatross 2022. 7. 8.
반응형

데이터가 DB에 삽입된 순서로 출력되기 때문에 데이터 변동이 있다면 순서가 바뀔 수 있다. 

따라서 데이터 호출 시에 정렬 순서를 명시하여 원하는 순서대로 데이터를 받아볼 수 있다.

 

SELECT price FROM future.kospi200 ORDER BY price LIMIT 10;

price column을 오름차순으로 정렬한다.

이 때 LIMIT을 붙이면 전체 price 데이터 중 가장 작은 데이터 10개를 반환한다.

 

SELECT DISTINCT date FROM future.kospi200 ORDER BY price LIMIT 10;

꼭 요청한 column에 대해서만 정렬할 수 있는건 아니다. 

위 예시처럼 price가 가장 낮았던 날짜만을 요청할 수도 있다. 

 

SELECT DISTINCT date,time FROM future.kospi200 ORDER BY price LIMIT 10;

여러 column을 호출할 수도 있다. 

 

SELECT DISTINCT date, time, price FROM future.kospi200 ORDER BY price, date LIMIT 10;

date, time, price를 요청하는데 정렬기준은 price, date이다. 

이경우 price를 기준으로 줄을 우선적으로 세우고, 그 이후 price에 중복이 있다면 time으로 다시 줄을 세운다. 

 

SELECT DISTINCT date, time, price FROM future.kospi200 ORDER BY 3, 2 LIMIT 10;

숫자는 귀찮음을 해소해준다. 이 경우 date=1, time=2, price=3다. 

 

SELECT DISTINCT date, time, price FROM future.kospi200 ORDER BY 3 DESC LIMIT 10;

ORDER BY의 deafult는 오름차순이지만, DESC를 명시해줌으로써 내림차순 요청도 가능하다. 

이 경우 DESC가 붙은 column에 대해서만 내림차순이 적용된다. 

가장 높은 price를 기록했을 때는 03/31이기 때문에 해당 일자의 데이터가 반환되었다. 

 

SELECT DISTINCT date, time, price FROM future.kospi200 ORDER BY 3 DESC, 2 LIMIT 10;

DESC가 price에 대해서만 적용되어있기 때문에 price는 내림차순 정렬되었으나,

같은 price를 가지는 time 데이터에 대해서는 오름차순 정렬이 되어있음을 확인할 수 있다. 

반응형

'프로그래밍언어 > SQL' 카테고리의 다른 글

[SQL] (5) 와일드카드 문자  (0) 2022.07.12
[SQL] (4) 고급 데이터 필터링  (0) 2022.07.11
[SQL] (3) 데이터 필터링  (0) 2022.07.10
[SQL] (1) 데이터 가져오기  (0) 2022.07.07