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

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


คุณสามารถรับเงินเดือนสูงสุดและอันดับสองจากตารางพนักงานโดยใช้ LIMIT OFFSET ไวยากรณ์มีดังนี้ −

เลือก yourColumnName1,yourColumnName2,....N จาก yourTableName ORDER BYyourColumnName ขีด จำกัด 2 offset 0;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

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> เลือก EmployeeId,Employeename,EmployeeSalary จาก EmployeeMaxAndSecondMaxSalary โดย -> EmployeeSalary desc จำกัด 2 ออฟเซ็ต 0;

ผลลัพธ์จะแสดงบันทึกของพนักงาน 2 คนที่มีเงินเดือนสูงสุด -

<ก่อนหน้า>+-----------+--------------+----------------+| รหัสพนักงาน | ชื่อพนักงาน | เงินเดือนพนักงาน |+------------+--------------+----------------+| 6 | เดวิด | 89990 || 8 | โรเบิร์ต | 76543 |+------------+--------------------+----------------+2 แถว ในชุด (0.00 วินาที)