-
SQLD 자격검증실전문제 101번 문제<자격증>/[SQLD] 2023. 3. 21. 13:30728x90
101번. 아래와 같은 데이터 모델에서 평가대상상품에 대한 품질평가항목별 최종 평가 결과를 추출하는 SQL 문장으로 옳은 것은?(단, 평가항목에 대한 평가(평가등급)가 기대수준에 미치지 못할 경우 해당 평가항목에 대해서만 재평가를 수행 한다)1 SELECT B. 상품ID, B. 상품명, C. 평가항목ID, C. 평가항목명, A. 평가회차. A. 평가등급, A. 평가일자 FROM 평가결과 A, 평가대상상품 B, 품질평가항목 C. (SELECT MAX(평가회차) AS 평가회차 FROM 평가결과) D WHERE A. 상품ID= B. 상품ID AND A. 평가항목ID = C. 평가항목ID AND A. 평가회차= D. 평가회차:
2 SELECT B. 상품ID, B. 상품명, C. 평가항목ID, C. 평가항목명, A. 평가회차, A. 평가등급, A. 평가일자 FROM 평가결과 A. 평가대상상품 B. 품질평가항목 C WHERE A. 상품ID = B. 상품ID AND A. 평가항목ID = C. 평가항목ID AND A. 평가회차 = (SELECT MAX(X. 평가회차) FROM 평가결과 X WHERE X. 상품ID= B. 상품ID AND X. 평가항목ID = C. 평가항목ID);
[정답] 2번
[해설]
이 SQL 쿼리는 평가결과 테이블에서 최신 평가회차의 평가결과를 가져오는 것입니다.
- SELECT 구문에서는 평가결과를 구성하는 여러 테이블을 조인합니다.
- FROM 구문에서는 평가결과 테이블을 A로, 평가대상상품 테이블을 B로, 품질평가항목 테이블을 C로 지정합니다.
- WHERE 구문에서는 A.상품ID와 B.상품ID가 같고, A.평가항목ID와 C.평가항목ID가 같아야 합니다. 또한 A.평가회차는 서브쿼리로 가져온 최신 평가회차와 같아야 합니다.
- 서브쿼리에서는 최신 평가회차를 가져옵니다. FROM 구문에서는 평가결과 테이블을 X로 지정하고, WHERE 구문에서는 상품ID와 평가항목ID가 같고, 평가회차가 최대인 값을 가져옵니다.
즉, 이 SQL 쿼리는 각 상품 및 평가항목별로 최신 평가결과를 가져오는 것입니다.
728x90[복습]
728x90'<자격증> > [SQLD]' 카테고리의 다른 글
SQLD 자격검증실전문제 99번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 100번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 102번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 103번 문제 (0) 2023.03.20 SQLD 자격검증실전문제 104번 문제 (0) 2023.03.20