-
SQLD 자격검증실전문제 97번 문제<자격증>/[SQLD] 2023. 3. 21. 16:23728x90
97번. 다음 중 아래의 ERD를 참조하여 아래 SQL과 동일한 결과를 출력하는 SQL로 가장 부적절한 것은?
[SQL]SELECT A. 회원번호, A. 회원명 FROM 회원 A, 동의항목 B WHERE A. 회원번호= B. 회원번호 GROUP BY A. 회원번호, A. 회원명 HAVING COUNT(CASE WHEN B. 동의여부= 'N' THENO ELSE NULL END)>= 1 ORDER BY A. 회원번호;
보기
--1 SELECT A.회원번호, A.회원명 FROM 회원 A WHERE EXISTS (SELECT 1 FROM 동의항목 B WHERE A.회원번호= B.회원번호 AND B.동의여부 = 'N') ORDER BY A.회원번호
--2 SELECT A.회원번호, A.회원명 FROM 회원 A WHERE A. 회원번호 IN (SELECT B.회원번호 FROM 동의항목 B WHERE B. 동의여부 = 'N') ORDER BY A. 회원번호:
--3 SELECT A. 회원번호, A. 회원명 FROM 회원 A WHERE B. 동의여부= 'N') WHERE 0 < (SELECT COUNT(*) FROM 동의항목 B WHERE B. 동의여부= 'N') ORDER BY A. 회원번호:
--4 SELECT A. 회원번호, A. 회원명 FROM 회원 A. 동의항목 B WHERE A. 회원번호= B. 회원번호 AND B. 동의여부= 'N' GROUP BY A. 회원번호, A. 회원명 ORDER BY A 회원번호:
[정답] 1번
[해설]
- 회원 테이블에서 회원번호와 회원명을 선택합니다.
- 동의항목 테이블에서 회원번호와 동의여부를 선택합니다.
- 회원 테이블의 각 행에 대해 하위 쿼리를 실행합니다. 하위 쿼리는 선택된 회원의 회원번호와 일치하고, 동의여부가 'N'인 동의항목이 존재하는지 확인합니다.
- 하위 쿼리의 결과가 참인 경우에만, 회원 테이블에서 선택된 회원번호와 회원명을 반환합니다.
- 회원번호를 기준으로 결과를 오름차순으로 정렬합니다.
즉, 이 쿼리는 동의항목에 동의하지 않은 회원들의 정보를 회원 테이블에서 선택하고, 회원번호를 기준으로 정렬하여 반환합니다.
728x90[복습]
728x90'<자격증> > [SQLD]' 카테고리의 다른 글
SQLD 자격검증실전문제 95번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 96번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 98번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 99번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 100번 문제 (0) 2023.03.21