728x90
반응형
[윈도우 함수 관련 글]
예제1 및 풀이
출처: EPASSKOREA
Q. 추천내역 테이블에서 아래와 같은 SQL 문 수행 시 결과는?
[추천내역 테이블]
추천경로 | 추천인 | 피추천인 | 추천점수 |
SNS | 나한일 | 강감찬 | 75 |
SNS | 이순신 | 강감찬 | 90 |
이벤트 | 홍길동 | 강감찬 | 80 |
이벤트 | 정치인 | 이순신 | 78 |
홈페이지 | 정치인 | 허민 | 93 |
홈페이지 | 홍두깨 | 심청이 | 99 |
[SQL 문]
SELECT 추천경로, 추천인, 피추천인, 추천점수
FROM (SELECT 추천경로, 추천인, 피추천인, 추천점수
ROW_NUMBER() OVER (PARTITION BY 추천경로
ORDER BY 추천점수 DESC) AS RNUM
FROM 추천내역)
WHERE RNUM = 1;
■ 풀이
ROW_NUMBER() : 번호를 매겨라
PARTITION BY 칼럼명: 해당 칼럼을 기준으로 나눠라
ORDER BY 칼럼명 DESC: 해당 칼럼을 내림차순 기준으로 정렬하라
▶ ROW_NUMBER() OVER (PARTITION BY 추천경로 ORDER BY 추천점수 DESC):
추천경로를 기준으로 나눠서 번호를 매긴 다음, 추천점수를 내림차순 기준으로 정렬하라.
ORDER BY 추천점수 DESC): 추천점수를 내림차순 기준으로 정렬하라.
▼
WHERE RNUM = 1; RNUM 1 씩만 출력
■ 정답
추천경로 | 추천인 | 피추천인 | 추천점수 |
SNS | 이순신 | 강감찬 | 90 |
이벤트 | 홍길동 | 강감찬 | 80 |
홈페이지 | 홍두깨 | 심청이 | 99 |
예제2 및 풀이
출처: SQL 자격검정 실전문제 (노랭이) P. 122 Q.117
Q. 다음 중 [사원] 테이블에 대하여 아래와 같은 SQL을 수행하였을 때 결과는?
[테이블: 사원]
사원ID | 부서ID | 사원명 | 연봉 |
001 | 100 | 홍길동 | 2500 |
002 | 100 | 강감찬 | 3000 |
003 | 200 | 김유신 | 4500 |
004 | 200 | 김선달 | 3000 |
005 | 200 | 유학생 | 2500 |
006 | 300 | 변사또 | 4500 |
007 | 300 | 박문수 | 3000 |
[SQL문]
SELECT Y.사원ID, Y.부서ID, Y.사원명, Y.연봉
FROM (SELECT 사원ID, MAX(연봉) OVER(PARTITION BY 부서ID) AS 최고연봉
FROM 사원) X, 사원 Y
WHERE X.사원ID = Y.사원ID
AND X.최고연봉 = Y.연봉;
■ 풀이
FROM (SELECT 사원ID, MAX(연봉) OVER(PARTITION BY 부서ID) AS 최고연봉 FROM 사원) X
SELECT Y.사원ID, Y.부서ID, Y.사원명, Y.연봉
FROM (SELECT 사원ID, MAX(연봉) OVER(PARTITION BY 부서ID) AS 최고연봉
FROM 사원) X, 사원 Y
WHERE X.사원ID = Y.사원ID
AND X.최고연봉 = Y.연봉;
728x90
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] PIVOT/UNPIVOT (보강-1) (0) | 2024.03.01 |
---|---|
[SQLD] TOP N Query (보강) (3) | 2024.03.01 |
SQL 집계함수 - SUM (0) | 2024.02.26 |
SQLD 2과목 SQL 활용 - 서브쿼리 (보강) (0) | 2024.02.19 |
SQLD 2과목 SQL 활용 - 계층형 질의(보강) (1) | 2024.02.18 |