SQL ORDER BY와 여러 열을 사용하는 방법
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
ORDER BY
절은 여러 열을 기준으로 결과를 정렬할 수 있습니다.- 열의 순서와 방향은 최종 결과에 영향을 미칩니다.
- 여러 열을 사용하면 보다 정확한 데이터 구성을 제공합니다.
데이터베이스를 사용할 때 데이터를 의미 있는 순서로 정렬하는 것은 분석, 보고 또는 사용자 프레젠테이션에 종종 필요합니다. SQL은 쿼리 결과를 정렬하기 위해 ORDER BY
절을 제공합니다. 단일 열로 정렬하는 것은 간단하지만 여러 열로 정렬해야 하는 경우가 많습니다. 이 기사에서는 SQL에서 여러 열과 함께 ORDER BY
를 사용하는 방법, 유용한 이유, 사용법을 설명하는 예제를 제공합니다.
여러 열로 정렬하는 이유는 무엇입니까?
여러 열로 정렬하면 더 체계적이고 쉽게 해석할 수 있는 결과를 만들 수 있습니다. 예를 들어 직원 목록이 있고 먼저 부서별로 정렬한 다음 급여별로 정렬하려는 경우 ORDER BY
절에서 여러 열을 사용하면 데이터가 필요한 방식으로 정확하게 그룹화되고 정렬됩니다.
여러 열이 있는 ORDER BY 구문
SQL에서 여러 열을 기준으로 정렬하는 기본 구문은 다음과 같습니다.
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
column1
,column2
등은 정렬하려는 열입니다.ASC
는 오름차순(기본값)을 의미하고DESC
는 내림차순을 의미합니다.- 필요에 따라 오름차순과 내림차순을 혼합할 수 있습니다.
예: 두 열로 정렬
employees
라는 테이블에 department
, last_name
및 salary
열이 있다고 가정합니다. 직원을 부서별(알파벳순)로 정렬하고 각 부서 내에서 급여별(가장 높음에서 가장 낮음)으로 정렬하려고 합니다.
SELECT department, last_name, salary FROM employees ORDER BY department ASC, salary DESC;
이 예에서:
- 결과는 먼저
department
열을 기준으로 오름차순으로 정렬됩니다. - 각 부서 내에서 행은
salary
열을 기준으로 내림차순으로 추가 정렬됩니다.
예: 둘 이상의 열로 정렬
필요한 만큼 많은 열을 ORDER BY
절에 추가할 수 있습니다. 세 개의 열이 있는 예는 다음과 같습니다.
SELECT department, last_name, first_name, salary FROM employees ORDER BY department, last_name, first_name;
이 쿼리는 다음을 수행합니다.
- 모든 직원을
department
별로 먼저 정렬합니다. - 동일한 부서 내의 직원은
last_name
별로 정렬합니다. - 부서에 성이 같은 직원이 있는 경우
first_name
별로 정렬됩니다.
실용적인 팁
ORDER BY
절의 열 순서가 중요합니다. SQL은 첫 번째 열을 기준으로 정렬한 다음 동률이 있는 경우에만 두 번째 열을 기준으로 정렬합니다.ASC
또는DESC
를 지정하지 않으면 SQL은 기본적으로 오름차순을 사용합니다.ORDER BY
절에서 열 번호를 사용할 수 있지만(예:ORDER BY 2, 3 DESC
) 가독성을 위해 열 이름을 사용하는 것이 좋습니다.
결론
ORDER BY
절을 사용하여 SQL에서 여러 열을 기준으로 정렬하는 것은 쿼리 결과의 순서를 제어하는 강력한 방법입니다. 하나 이상의 열과 각 열의 방향을 지정하여 거의 모든 요구 사항에 맞게 데이터 프레젠테이션을 조정할 수 있습니다. 이 기술을 마스터하는 것은 SQL에서 효과적인 데이터 쿼리 및 보고에 필수적입니다.
FAQs
예, 각 열에 대해 ASC 또는 DESC를 개별적으로 지정할 수 있습니다.
SQL은 ORDER BY 절에 지정된 다음 열을 기준으로 정렬합니다.
아니요, 하지만 가독성을 위해 권장됩니다. 열 번호도 사용할 수 있습니다.
Leapcell은 백엔드 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다중 언어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 비용을 지불합니다. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불합니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합
- 실행 가능한 통찰력을 위한 실시간 지표 및 로깅
간편한 확장성 및 고성능
- 쉬운 동시성 처리를 위한 자동 확장
- 운영 오버헤드가 전혀 없으므로 구축에만 집중하십시오.
설명서에서 자세히 알아보십시오!
X에서 저희를 팔로우하세요: @LeapcellHQ