320x100
이번 단원은 확실히 난이도가 향상된 느낌을 많이 받았다.
그도 그럴것이 하나의 툴만 사용하면 사실 익숙해져서 이건 아무것도 아니라고 느낄것인데
각 툴마다 최상위 출력 방법이 달라버리면, 익숙해지지 않은 입장에선 어렵다고 느껴지기 때문이다.
내게 가장 익숙한 툴이야 postgreSQL이고, 그걸로 최상위 출력한다 치면 LIMIT로 앳저녁에 끝냈겠지만
dbms의 툴은 postgreSQL말고도 여러가지 니깐..
# 기본 최상위 출력 방법
1. oracle developer
방법1
# 서브쿼리
문제1. 면적이 넓은 상위 4개의 도시를 골라보자
SELECT * FROM
(SELECT * FROM tcity ORDER BY area DESC)
WHERE rownum <=4;
이런식으로 출력을 해야한다.
방법2
OFFSET FETCH 사용이다.
예시1
면적이 넓은 상위 4개의 도시를 고른다는 의미
SELECT * FROM tcity ORDER BY area DESC OFFSET 0 ROWS FETCH NEXT 4 ROWS ONLY;
** 아주 중요 예시2
상위 2개를 건너뛰고 나서부터 3개를 출력해준다는 의미
SELECT * FROM tcity ORDER BY area DESC OFFSET 2 ROWS FETCH NEXT 3 ROWS ONLY;
2. SQL server
SELECT TOP 을 이용해서 TOP 순위 몇개인지 지정 하면 된다.
예시
SELECT TOP 4 * FROM tcity ORDER BY area DESC;
3. postgreSQL
마지막에 LIMIT으로 몇개를 지정할지 정해주면 사실상 정렬기준에 따라서
최하 n개 혹은 최상 n개를 지정이 가능하다.
# 문제
문제1. 직원을 월급 순으로 정렬한 후 12위에서 16위까지 출력하라
이건 확실히 난이도가 있어서 기존의 코드를 참고했다.
SELECT * FROM tstaff ORDER BY salary DESC
OFFSET 11 ROWS FETCH NEXT 5 ROWS ON
300x250
'개발일지 > SQL' 카테고리의 다른 글
oracle developer 문제풀이7. MAX, MIN (문법 보완 필요) (0) | 2022.09.09 |
---|---|
oracle developer 문제풀이6. COUNT (0) | 2022.09.09 |
oracle developer 문제풀이5. IN (0) | 2022.09.09 |
oracle developer 기초1. IN 예시 (0) | 2022.09.09 |
oracle developer 문제풀이4. BETWEEN (0) | 2022.09.09 |