-
[ORACLE/MYSQL] 3줄의 데이터만 조회하기비전공자 공부일기/:: DB - SQL 2021. 10. 11. 13:46
SQL 코테를 풀다보면 '조건에 맞는 3줄의 데이터만 출력하세요' 라는 문장이 많이 보인다.
혹은 '가장 ~~한 데이터를 보여주세요' 라는 말이 나오기도 한다.
모두 조회된 전체 값 중에 일부 조건을 만족하는 상위 랭크를 구해야 된다는 점이 같다.
이 때 쓸 수 있는 것들
(1) MY SQL SELECT * FROM TABLE_NM WHERE COLUMN_NM NOT IN (서브쿼리) ORDER BY COLUMN_NM LIMIT 3 (2) ORACLE SELECT * FROM TABLE_NM WHERE COLUMN_NM NOT IN (서브쿼리) ORDER BY COLUMN_NM FETCH FIRST 3 ROWS ONLY (3) ORACLE SELECT * FROM TABLE_NM WHERE COLUMN_NM NOT IN (서브쿼리) AND ROWNUM <= 3 ORDER BY COLUMN_NM
LIMIT n
FETCH FIRST n ROWS ONLY
ROWNUM <= n** ROWNUM을 사용하는 경우 **
(오라클)
order by와 함께 사용할 경우 rownum이 순번을 매긴 후 --> order by 절이 수행되기 때문에
순번대로 정렬하기 위해서는 order by절을 서브쿼리를 이용하여 정렬 후 rownum을 걸어줘야 한다.
(MySQL/MariaDB)
MySQL과 MariaDB에서는 ROWNUM을 지원하지 않기 때문에 @을 통해 변수를 생성해서 사용해야 한다.
이 때 변수는 FROM절, WHERE절에서 선언할 수 있음 (사용법은 나중에 따로 써보자)잘 기억해둡시다
'비전공자 공부일기 > :: DB - SQL' 카테고리의 다른 글
[한기교] SQL 활용 필기(16) - 트리거 (0) 2020.05.05 [한기교] SQL 활용 필기(15) - 저장 프로시저와 사용자 정의 함수(다시듣기) (0) 2020.05.05 [한기교] SQL 활용 필기(14) - 사용자 관리 (0) 2020.05.05 [한기교] SQL 활용 필기(13) - 인덱스와 뷰 (0) 2020.05.05 [한기교] SQL 활용 필기(12) - 순위 계산 (0) 2020.05.05