본문 바로가기
Programming

SQL에서 상위 비율 데이터 확인하기

by 느리게 걷는 즐거움 2024. 5. 31.
반응형

SQL에서 TOP 명령어 사용법

데이터베이스에서 데이터를 조회할 때, 특정 수의 행만 조회하고 싶은 경우가 있습니다. 이때 유용하게 사용할 수 있는 명령어가 `TOP`입니다. 이번 글에서는 SQL의 `TOP` 명령어에 대해 자세히 알아보고, 다양한 예제를 통해 사용법을 살펴보겠습니다.

TOP 명령어 기본 사용법

`TOP` 명령어는 조회 결과에서 상위 몇 개의 행만 선택하는 데 사용됩니다. 기본적인 문법은 다음과 같습니다:

SELECT TOP (n) 열1, 열2, ...
FROM 테이블명
ORDER BY 열;

- `n`: 반환할 행의 개수입니다.

예제

`employees` 테이블에서 상위 3명의 직원 정보를 조회하고자 할 때, 다음과 같이 작성할 수 있습니다:

SELECT TOP (3) name, age, department
FROM employees
ORDER BY age DESC;
결과
 name age  department 
David   40 IT         
Charlie 35   Sales      
Alice   30   HR         

위 쿼리는 `age`를 기준으로 내림차순 정렬한 후, 상위 3명의 직원 정보를 반환합니다.

PERCENT 옵션 사용

`TOP` 명령어는 `PERCENT` 옵션과 함께 사용할 수 있습니다. 이 옵션을 사용하면 전체 행의 특정 비율만큼을 선택할 수 있습니다.

예제

`employees` 테이블에서 상위 50%의 직원 정보를 조회하고자 할 때, 다음과 같이 작성할 수 있습니다:

SELECT TOP (50) PERCENT name, age, department
FROM employees
ORDER BY age DESC;

이 쿼리는 `age`를 기준으로 내림차순 정렬한 후, 상위 50%의 직원 정보를 반환합니다.

WITH TIES 옵션 사용

`TOP` 명령어는 `WITH TIES` 옵션과 함께 사용할 수 있습니다. 이 옵션을 사용하면 마지막으로 선택된 행과 동일한 값을 가진 추가 행도 함께 반환합니다.

예제

`employees` 테이블에서 상위 2명의 직원 정보를 조회하되, 동일한 나이를 가진 직원도 포함하고자 할 때, 다음과 같이 작성할 수 있습니다. 단 WITE TIES를 사용할 때에는 ORDER BY 절이 꼭 함께 사용되어야 합니다. 동일한 데이터를 정렬하는 기준으로 사용됩니다.

SELECT TOP (2) WITH TIES name, age, department
FROM employees
ORDER BY age DESC;
name 

age  department 
David   40  IT
Charlie 35   Sales      
Eve     35   IT         

이 쿼리는 `age`를 기준으로 내림차순 정렬한 후, 상위 2명의 직원 정보와 함께 동일한 나이를 가진 직원도 포함하여 반환합니다.

특정 데이터베이스에서의 사용법

`TOP` 명령어는 Microsoft SQL Server에서 주로 사용됩니다. 다른 데이터베이스에서는 동일한 기능을 제공하는 다른 명령어를 사용합니다.

MySQL: `LIMIT` 명령어를 사용합니다.
PostgreSQL: `LIMIT` 명령어를 사용합니다.
Oracle: `ROWNUM` 또는 `FETCH FIRST` 명령어를 사용합니다.

MySQL 예제

MySQL에서 `LIMIT` 명령어를 사용하여 상위 3명의 직원 정보를 조회하고자 할 때:

SELECT name, age, department
FROM employees
ORDER BY age DESC
LIMIT 3;

 

PostgreSQL 예제

PostgreSQL에서 `LIMIT` 명령어를 사용하여 상위 3명의 직원 정보를 조회하고자 할 때

SELECT name, age, department
FROM employees
ORDER BY age DESC
LIMIT 3;

 

 

 

반응형