[SQL] 데이터 정렬 - ORDER BY

2024. 8. 14. 18:11Language/SQL

 지금까지 출력된 결과 데이터를 보면 아마 데이터가 DB 에 저장된 순서로 출력 되었을 것이다. 하지만 실무에서는 필요에 따라 특정 조건 순서에 따라 출력된 결과를 보는 것이 업무에 더 효율적인 경우가 더러 있을 것이다. 이번에는 출력 결과를 Query 작성자가 원하는 순서대로 출력하는 방법에 대해 알아보자.

 

1. 기본 문법

SELECT 컬럼명
FROM 테이블명
ORDER BY 정렬 대상 컬럼명 ASC	// 'ASC' 는 생략 가능

 

'ORDER BY' 문에는 정렬을 원하는 컬럼명을 작성하면 된다. 'ASC' 는오름차순(점점 값이 커지는 순서)을 의미하며 생략이 가능하다(아마 기본 값이 'ASC' 인 것 같다). 반대 개념의 내림차순(점점 값이 작아지는 순서)은 'DESC' 를 사용하면 된다

 

 

2. 사용 예시

2-1. 특정 컬럼 정렬

 'customers' 테이블에 속한 고객들의 데이터를 나이가 어린 순으로 정렬해 보자.

SELECT *
FROM customers
ORDER BY age

특정 컬럼 내림차순 정렬

 

2-2. with GROUP BY

 'food_orders' 테이블에서 각 음식점, 음식 가격 평균을 내림차순으로 정렬해 보자.

SELECT restuarant_name, AVG(price) avg_price
FROM food_orders
GROUP BY restuarant_name
ORDER BY avg_price DESC

카테고리별 연산 후 내림차순 정렬

 

'GROUP BY' 를 함께 사용해 음식점별로 음식 가격 평균(avg_price)을 구하고 'avg_price' 를 내림차순으로 정렬하였다. 예시에 사용한 것처럼 'SELECT' 문에서 음식 가격 평균에 대해 별명을 붙였기 때문에 해당 별명을 그대로 ORDER BY 에 사용할 수 있었다.