Mysql
 sql >> база данни >  >> RDS >> Mysql

Вземете втората най-висока стойност в MySQL таблица

Ето един, който отчита равенството.

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

РЕДАКТИРАНЕ: Взех втория пост на Manoj, оправих го и го направих малко по-четим от човека. За менn-1 не е интуитивен; обаче, използвайки желаната от мен стойност, 2=2-ро, 3=3-то и т.н. е.

/* 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. Създайте MySQL съхранена процедура с помощта на JPA Hibernate

  2. MYSQL Изберете заявка със SUM()

  3. Множество външни ключа в една и съща таблица

  4. Множество mysql INSERT изрази в една заявка php

  5. mysql - днес е между две стойности на колони