Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhận giá trị cao thứ hai trong bảng MySQL

Đây là một trong những lý do cho mối quan hệ.

Name    Salary
Jim       6
Foo       5
Bar       5
Steve     4

SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees))

Result --> Bar 5, Foo 5

CHỈNH SỬA: Tôi lấy bài đăng thứ hai của Manoj, chỉnh sửa nó và làm cho nó dễ đọc hơn một chút. Gửi tôi n-1 không trực quan; tuy nhiên, sử dụng giá trị tôi muốn, 2 =2nd, 3 =3rd, v.v. là.

/* looking for 2nd highest salary -- notice the '=2' */
SELECT name,salary FROM employees
WHERE salary = (SELECT DISTINCT(salary) FROM employees as e1
WHERE (SELECT COUNT(DISTINCT(salary))=2 FROM employees as e2
WHERE e1.salary <= e2.salary)) ORDER BY name

Result --> Bar 5, Foo 5


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 9.04 (Jaunty)

  2. Nhiều GROUP_CONCAT trên các trường khác nhau bằng MySQL

  3. Sao lưu MySQL Amazon RDS

  4. Tại sao Rails lại thêm `OR 1 =0` vào các truy vấn bằng cách sử dụng cú pháp băm mệnh đề where với một phạm vi?

  5. thứ tự mysql theo dữ liệu tuần tự?