<자격증>/[SQLD]
SQLD 자격검증실전문제 113번 문제
9566
2023. 3. 19. 19:28
728x90
113번. 다음중 아래 테이블에서 SQL을 실행할때, 결과로 적절한것은?
[SQL]
SELECT 고객번호, 고객명, 매출액,
RANK() OVER(ORDER BY 매출액 DESC) AS 순위
FROM (
SELECT A.고객번호
,MAX(A. 고객명) AS 고객명
,SUM(B. 매출액) AS 매출액
FROM 고객 A INNER JOIN 월별매출 B
ON (A. 고객번호 = B. 고객번호)
GROUP BY A. 고객번호
)
ORDER BY RANK;
자세한 코드 설명은 다음과 같습니다.
- 고객 테이블에서는 고객번호(PK)와 고객명 정보가 있습니다.
- 월별매출 테이블에서는 고객번호(PK)와 매출액, 매출월 정보가 있습니다.
- INNER JOIN을 사용하여 두 테이블을 연결합니다. 이 때, ON 절을 사용하여 고객번호를 기준으로 연결합니다.
- GROUP BY를 사용하여 고객별로 매출액을 합산합니다. 이 때, 고객명 정보는 MAX 함수를 사용하여 고객별로 하나의 값만 출력합니다.
- RANK() OVER() 함수를 사용하여 매출액이 높은 순서대로 순위를 매깁니다. 이 때, DESC 키워드를 사용하여 내림차순으로 정렬합니다.
- 출력 결과에서는 고객번호, 고객명, 매출액, 순위 정보를 출력합니다. 이 때, ORDER BY 절을 사용하여 순위 정보를 기준으로 정렬합니다.
정답
728x90
728x90