Programming

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

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

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;

 

 

 

반응형