Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL Employee 테이블에 대한 최대 및 두 번째 최대 급여를 찾으시겠습니까?

<시간/>

LIMIT OFFSET을 사용하여 Employee 테이블에서 최대 및 두 번째 최대 급여를 얻을 수 있습니다. 구문은 다음과 같습니다 -

SELECT yourColumnName1,yourColumnName2,....N from yourTableName ORDER BY
yourColumnName desc limit 2 offset 0;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table EmployeeMaxAndSecondMaxSalary
   -> (
   -> EmployeeId int,
   -> Employeename varchar(20),
   -> EmployeeSalary int
   -> );
Query OK, 0 rows affected (0.88 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into EmployeeMaxAndSecondMaxSalary values(1,'John',34566);
Query OK, 1 row affected (0.20 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(2,'Bob',56789);
Query OK, 1 row affected (0.17 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(3,'Carol',44560);
Query OK, 1 row affected (0.26 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(4,'Sam',76456);
Query OK, 1 row affected (0.29 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(5,'Mike',65566);
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(6,'David',89990);
Query OK, 1 row affected (0.19 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(7,'James',68789);
Query OK, 1 row affected (0.12 sec)

mysql> insert into EmployeeMaxAndSecondMaxSalary values(8,'Robert',76543);
Query OK, 1 row affected (0.13 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from EmployeeMaxAndSecondMaxSalary;

다음은 출력입니다 -

+------------+--------------+----------------+
| EmployeeId | Employeename | EmployeeSalary |
+------------+--------------+----------------+
|          1 | John         | 34566          |
|          2 | Bob          | 56789          |
|          3 | Carol        | 44560          |
|          4 | Sam          | 76456          |
|          5 | Mike         | 65566          |
|          6 | David        | 89990          |
|          7 | James        | 68789          |
|          8 | Robert       | 76543          |
+------------+--------------+----------------+
8 rows in set (0.00 sec)

다음은 limit offset -

을 사용하여 최대 및 두 번째 최대 급여를 구하는 쿼리입니다.
mysql> select EmployeeId,Employeename,EmployeeSalary from EmployeeMaxAndSecondMaxSalary order by
   -> EmployeeSalary desc limit 2 offset 0;

출력은 최대 급여를 받는 직원 2명의 레코드를 표시합니다. -

+------------+--------------+----------------+
| EmployeeId | Employeename | EmployeeSalary |
+------------+--------------+----------------+
|          6 | David        |          89990 |
|          8 | Robert       |          76543 |
+------------+--------------+----------------+
2 rows in set (0.00 sec)