반응형
이렇게 정의 된 직원 및 급여 테이블이 있습니다.
"name" (type: VARCHAR)
"salary" (type: INTEGER)
이 테이블에서 두 번째로 높은 급여를 얻으려면 어떤 쿼리를 사용할 수 있습니까?
해결 방법
여기에 관계를 설명하는 것이 있습니다.
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 = 2nd, 3 = 3rd 등이 있습니다.
/* 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
참조 페이지 https://stackoverflow.com/questions/5360894
반응형
'MySql' 카테고리의 다른 글
MySQL SQL 쿼리에서 LEFT JOIN의 순서를 정렬하는 방법은 무엇입니까? (0) | 2020.10.14 |
---|---|
MySQL max () + 1 문제로 값 삽입 및 설정 (0) | 2020.10.14 |
MySQL Laravel 컬렉션에서 요소의 인덱스를 얻는 방법 (0) | 2020.10.14 |
MySQL 데이터베이스 레코드를 배열에 저장 (0) | 2020.10.14 |
MySQL null 인 mysql update increment int 필드 (0) | 2020.10.14 |
댓글