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

하위 쿼리를 사용하여 MySQL Employee 테이블의 최대 및 두 번째 최대 급여를 찾으시겠습니까?

<시간/>

하위 쿼리를 사용하여 Employee 테이블에서 최대 및 두 번째 최대 급여를 얻을 수 있습니다.

먼저 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> 테이블 EmployeeMaxAndSecondMaxSalary 생성 -> ( -> EmployeeId int, -> Employeename varchar(20), -> EmployeeSalary int -> );쿼리 OK, 영향을 받는 행 0개(0.88초)

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

mysql> insert into EmployeeMaxAndSecondMaxSalary values(1,'John',34566);Query OK, 1행 영향(0.20초)mysql> insert into EmployeeMaxAndSecondMaxSalary values(2,'Bob',56789);Query OK, 1 row 영향을 받은(0.17초)mysql> EmployeeMaxAndSecondMaxSalary 값에 삽입(3,'Carol',44560); 쿼리 확인, 영향을 받는 1행(0.26초) mysql> EmployeeMaxAndSecondMaxSalary 값에 삽입(4,'Sam',76456), 쿼리 확인, 영향을 받는 행 1개(0.29초)mysql> EmployeeMaxAndSecondMaxSalary 값에 삽입(5,'Mike',65566);쿼리 OK, 영향을 받는 행 1개(0.14초)mysql> EmployeeMaxAndSecondMaxSalary 값에 삽입(6,'David',89990), 쿼리 OK, 1개의 행이 영향을 받았습니다(0.19초)mysql> EmployeeMaxAndSecondMaxSalary 값에 삽입(7,'James',68789);쿼리 확인, 1개의 행이 영향을 받았습니다(0.12초)mysql> EmployeeMaxAndSecondMaxSalary 값에 삽입(8,'Robert',76543);쿼리 OK, 1개 행이 영향을 받았습니다(0.13초)

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

mysql> EmployeeMaxAndSecondMaxSalary에서 *선택;

다음은 출력입니다.

+------------+--------------+----------------+| 직원 ID | 직원 이름 | 직원 급여 |+------------+--------------+----------------+| 1 | 존 | 34566 || 2 | 밥 | 56789 || 3 | 캐롤 | 44560 || 4 | 샘 | 76456 || 5 | 마이크 | 65566 || 6 | 데이비드 | 89990 || 7 | 제임스 | 68789 || 8 | 로버트 | 76543 |+------------+--------------+----------------+8행 세트 내(0.00초)

하위 쿼리를 사용하여 최대 및 두 번째 최대 급여를 구하는 쿼리 -

mysql> select (select max(EmployeeSalary) from EmployeeMaxAndSecondMaxSalary) MaximumSalary, -> (select max(EmployeeSalary) from EmployeeMaxAndSecondMaxSalary -> 여기서 EmployeeSalary not in(select max(EmployeeSalary) fromEmployeeMaxAndSecondMaxSalary)) as SecondMaximumSalary;

다음은 상위 두 급여를 표시하는 출력입니다. -

+---------------+---------------------+| 최대 급여 | SecondMaximumSalary |+---------------+--------------------+| 89990 | 76543 |+---------------+---------------------+1 행 세트(0.00초)