-
SQLD 자격검증실전문제 109번 문제<자격증>/[SQLD] 2023. 3. 19. 20:53728x90
109번. 아래 아래와 같이 설비와 에너지사용 테이블을 이용하여 결과를 나타내려할 때, SQL으로 가장 적절한 것을 2개 고르시오.
보기.
1 SELECT A. 설비ID. B. 에너지코드, SUM(B. 사용량) AS 사용량합계 FROM 설비 A INNER JOIN 에너지사용량 B ON (A. 설비ID= B. 설비[D) GROUP BY CUBE ((A. 설비ID), (B. 에너지코드), (A. 설비ID. B. 에너지코드)) ORDER BY A. 설비ID, B. 에너지코드:
2 SELECT A. 설비ID, B. 에너지코드, SUM(B. 사용량) AS 사용량합계 FROM 설비 A INNER JOIN 에너지사용량 B ON (A. 설비ID = B. 설비)) GROUP BY CUBE (A. 설비ID, B. 에너지코드) ORDER BY A. 설비ID, B. 에너지코드;
3 SELECT A. 설비ID, B. 에너지코드, SUM(B. 사용량) AS 사용량합계 FROM 설비 A INNER JOIN 에너지사용량 B ON (A. 설비ID B. 설비1D) GROUP BY GROUPING SETS((A. 설비ID), (B. 에너지코드), (A. 설비ID, B. 에너지코드) (0)
4 ORDER BY A. 설비ID, B. 에너지코드: SELECT A. 설비ID, B. 에너지코드, SUM(B. 사용량) AS 사용량합계 FROM 설비 A INNER JOIN 에너지사용량 B ON (A. 설비ID= B. 설비ID) GROUP BY GROUPING SETS((A. 설비ID), (B. 에너지코드), (A. 설비ID, B. 에너지코드)) ORDER BY A. 설비ID, B. 에너지코드:
정답
2, 3번
2번
위 SQL 코드는 "설비" 테이블과 "에너지사용" 테이블을 INNER JOIN 하여, 설비별 에너지 사용량의 합계를 구하는 쿼리입니다.
구체적으로 설명하면,
- 먼저 "설비" 테이블을 A라는 이름으로, "에너지사용" 테이블을 B라는 이름으로 INNER JOIN 합니다. 이때, A.설비ID와 B.설비ID를 조인 조건으로 사용합니다.
- 그 다음, A.설비ID와 B.에너지코드를 기준으로 GROUP BY를 수행합니다.
- GROUP BY CUBE 구문을 사용하여, A.설비ID와 B.에너지코드에 대해 모든 경우의 수를 구합니다. 즉, A.설비ID와 B.에너지코드 모두 NULL인 경우, 둘 중 하나만 NULL인 경우, 모두 NULL이 아닌 경우에 대한 결과를 모두 출력합니다.
- 각 경우의 수에 대해 SUM(B.사용량)으로 사용량의 합계를 구합니다.
- 결과를 A.설비ID, B.에너지코드 기준으로 오름차순으로 정렬합니다.
결과적으로, 설비ID와 에너지코드를 기준으로 사용량의 합계를 구하는데, 이를 CUBE를 이용하여 모든 경우의 수를 출력합니다.
3번
위 SQL 코드는 "설비" 테이블과 "에너지사용" 테이블을 INNER JOIN 하여, 설비별/에너지별/설비+에너지별/전체 사용량의 합계를 구하는 쿼리입니다.
구체적으로 설명하면,
- 먼저 "설비" 테이블을 A라는 이름으로, "에너지사용" 테이블을 B라는 이름으로 INNER JOIN 합니다. 이때, A.설비ID와 B.설비ID를 조인 조건으로 사용합니다.
- GROUPING SETS 구문을 사용하여, A.설비ID, B.에너지코드, A.설비ID+B.에너지코드, 전체 사용량에 대한 합계를 모두 출력합니다.
- SUM(B.사용량)으로 사용량의 합계를 구합니다.
- 결과를 A.설비ID, B.에너지코드 기준으로 그룹화합니다.
- GROUPING SETS에서 (0)을 사용하여, 전체 사용량에 대한 합계를 출력합니다.
결과적으로, 설비ID와 에너지코드를 기준으로 사용량의 합계를 구하는데, 이를 GROUPING SETS를 이용하여 각각의 경우에 대해 모두 출력합니다. 즉, 설비별, 에너지별, 설비+에너지별, 전체 사용량의 합계를 모두 출력합니다.
728x90728x90'<자격증> > [SQLD]' 카테고리의 다른 글
SQLD 자격검증실전문제 107번 문제 (0) 2023.03.20 SQLD 자격검증실전문제 106번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 110번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 111번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 112번 문제 (0) 2023.03.19