Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ค้นหาเงินเดือนสูงสุดและอันดับสองสำหรับตารางพนักงาน MySQL โดยใช้แบบสอบถามย่อยหรือไม่


คุณสามารถรับเงินเดือนสูงสุดและอันดับสองจากตารางพนักงานโดยใช้แบบสอบถามย่อย

ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง EmployeeMaxAndSecondMaxSalary -> ( -> EmployeeId int, -> Employeename varchar(20), -> EmployeeSalary int -> );Query OK, 0 แถวได้รับผลกระทบ (0.88 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (1,'John',34566); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (2,'Bob',56789); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (3,'Carol',44560); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.26 วินาที) mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (4, 'Sam',76456); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.29 วินาที) mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (5,'Mike',65566) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (6,'David',89990); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (7,'James',68789); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า EmployeeMaxAndSecondMaxSalary (8,'Robert',76543);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก EmployeeMaxAndSecondMaxSalary;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------+--------------+----------------+| รหัสพนักงาน | ชื่อพนักงาน | เงินเดือนพนักงาน |+------------+--------------+----------------+| 1 | จอห์น | 34566 || 2 | บ๊อบ | 56789 || 3 | แครอล | 44560 || 4 | แซม | 76456 || 5 | ไมค์ | 65566 || 6 | เดวิด | 89990 || 7 | เจมส์ | 68789 || 8 | โรเบิร์ต | 76543 |+------------+-------------+----------------+8 แถว ในชุด (0.00 วินาที)

แบบสอบถามเพื่อรับเงินเดือนสูงสุดและสูงสุดที่สองโดยใช้แบบสอบถามย่อย -

mysql> เลือก (เลือก max(EmployeeSalary) จาก EmployeeMaxAndSecondMaxSalary) MaximumSalary, -> (select max (EmployeeSalary) จาก EmployeeMaxAndSecondMaxSalary -> โดยที่ EmployeeSalary ไม่อยู่ใน (เลือก max (EmployeeSalary) จากEmployeeMaxAndSecondMaxSalary) เป็น Second;Maxim 

ต่อไปนี้เป็นผลลัพธ์ที่แสดงเงินเดือนสองอันดับแรก -

<ก่อนหน้า>+---------------+---------------------+| เงินเดือนสูงสุด | SecondMaximumSalary |+-----------------------+---------------------------+| 89990 | 76543 |+---------------------+--------------------- +1 แถวในชุด (0.00 วินาที)