[SQL] 테이블에서 두 번째로 큰 또는 세 번째로 큰 항목을 얻는 방법
SQL테이블에서 두 번째로 큰 또는 세 번째로 큰 항목을 얻는 방법
사람이 어떻게 N에게 오라클의 테이블에서 일 가장 큰 항목을 찾을 수 말해 주시겠습니까?
가장 큰 위해 우리는 또한 가장 큰 n 번째 찾을 수있는 효율적인 방법이 MAX (COLUMN_NAME)를 사용할 수 있습니다처럼?
해결법
-
==============================
1.
SELECT * FROM ( SELECT some_column, row_number() over (order by your_sort_column desc) as row_num FROM some_table ) t WHERE row_num = 3
당신은 또한 순위를 사용할 수 있습니다 your_sort_column에서 같은 값을 (이 더 하나의 행보다 기대한다면) 함수 고르다 * FROM ( SELECT의 some_column, row_rank 같은 랭크 () 이상 (your_sort_column 의해 내림차순 순서) some_table FROM ) t WHERE row_rank = 3 이 migh 반환 둘 이상의 행 ..
-
==============================
2.다음 쿼리를 사용하여 컬럼의 n 번째 큰 값을 찾을 수 있습니다
다음 쿼리를 사용하여 컬럼의 n 번째 큰 값을 찾을 수 있습니다
SELECT * FROM TableName a WHERE n = (SELECT count(DISTINCT(b.ColumnName)) FROM TableName b WHERE a.ColumnName <=b.ColumnName);
-
==============================
3.나는 쿼리 아래는 NOT IN과 두 번째로 높은 기록을 찾기 위해 작동합니다 생각합니다.
나는 쿼리 아래는 NOT IN과 두 번째로 높은 기록을 찾기 위해 작동합니다 생각합니다.
테이블에서 SELECT MAX (userId를) WHERE (테이블에서 SELECT MAX (userId를)) userId를 NOT IN
간단하고 유용한 ...
-
==============================
4.두 번째로 큰 급여 사용 내용 :
두 번째로 큰 급여 사용 내용 :
select salary from (select s2.salary,rownum rm from (select distinct salary from employees order by salary desc) s2 where rownum<=2) where rm >= 2
-
==============================
5.그것은 두 번째로 높은 연봉 작동
그것은 두 번째로 높은 연봉 작동
$query = "SELECT * FROM `table_name` ORDER BY field_name` DESC LIMIT 1 , 1 ";
-
==============================
6.당신은 열 이름으로 주문할 수 있습니다 다음 LIMIT 1,1 번째를 얻을 수
당신은 열 이름으로 주문할 수 있습니다 다음 LIMIT 1,1 번째를 얻을 수
편집하다
으악, 오라클 태그를 보지 못했다, 죄송합니다. ROWNUM = 2가 더 잘 작동해야 열 이름 BY ORDER.
-
==============================
7.
SELECT DISTINCT (a.sal) FROM EMP A WHERE &N = ( SELECT COUNT (DISTINCT (b.sal)) FROM EMP B WHERE a.sal<=b.sal );
당신이 수를 필요로 교체 & N. 예를 들어, 2는 당신에게 두 번째로 큰 급여를 제공 할 것입니다.
당신은 PL / SQL을 사용하는 경우, 그냥 문을 실행합니다. 그것은 N.에 대한 메시지를 표시합니다
-
==============================
8.이 시도:
이 시도:
SELECT DISTINCT TOP 3 id,[Password] FROM Users_changepassword WHERE [UserId] = 3 ORDER BY id DESC
-
==============================
9.이 시도,
이 시도,
SELECT Sal FROM Tab ORDER BY Sal DESC LIMIT 2,1
-
==============================
10.당신은 ROW_NUMBER () 오라클 SQL의 기능을 사용이 SQL을 시도 할 수 있습니다
당신은 ROW_NUMBER () 오라클 SQL의 기능을 사용이 SQL을 시도 할 수 있습니다
select column_name from ( select column_name , row_number() over (order by column_name desc) as row_num from table_Name ) tablex where row_num =3
-
==============================
11.
SELECT MAX(Salary) FROM Employee WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee)
-
==============================
12.당신은 PRIOR으로하여 연결을 사용할 수 있습니다 :
당신은 PRIOR으로하여 연결을 사용할 수 있습니다 :
CREATE TABLE t(i INT, sal INT); INSERT INTO t(i, sal) SELECT 1,100 FROM dual UNION SELECT 2,100 FROM dual UNION SELECT 3,200 FROM dual UNION SELECT 4,500 FROM dual UNION SELECT 5,1000 FROM dual;
질문:
SELECT level, MAX(sal) AS sal FROM t --WHERE level = 2 -- set position here CONNECT BY prior sal > sal GROUP BY level ORDER BY level;
DB 휘티 d 혀라도
DBFiddle Demo2
편집하다:
두 번째 접근 방식은 NTH_VALUE 분석 함수를 사용하는 것입니다 :
SELECT DISTINCT NTH_VALUE(sal, 2) OVER(ORDER BY sal DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t;
Dpfdl의 눈물
from https://stackoverflow.com/questions/4483222/how-to-get-second-largest-or-third-largest-entry-from-a-table by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 지난 7 일을 선택 MYSQL (0) | 2020.05.22 |
---|---|
[SQL] 지수 (기반 영)보다 커야 제로에 동일해야합니다 (0) | 2020.05.22 |
[SQL] 오라클 대에는 차이가 존재? (0) | 2020.05.22 |
[SQL] 어떻게 각 그룹의 첫 번째 N 행을 선택하려면? (0) | 2020.05.22 |
[SQL] 저장 프로 시저 / 함수는 테이블을 반환 할 수 있나요? (0) | 2020.05.22 |