-
SQLD 자격검증실전문제 98번 문제<자격증>/[SQLD] 2023. 3. 21. 14:08728x90
98번. 아래의 데이터 모델을 기준으로 SQL을 작성하였다. 다음 중 아래의 SQL에 대해 가장 바르게 설명한 것은?
[SQL]SELECT A. 회원ID, A. 회원명. A. 이메일 FROM 회원 A
ㄱ WHERE EXISTS (SELECT 'X' FROM 이벤트 B, 메일발송 C WHERE B. 시작일자>= '2014.10.01' AND B. 이벤트ID= C.이벤트ID
ㄴ AND A. 회원ID=C. 회원ID
ㄷ HAVING COUNT(*) <(SELECT COUNT(*) FROM 이벤트 WHERE 시작일자>= 2014.10.01')):
1 이벤트 시작일자가 2014.10.01'과 같거나 큰 이벤트를 대상으로 이메일이 발송된 기록이 있는 모든 회원을 추출하는 SQL이다.
2 ᄂ을 제거하고 ᄀ의 EXISTS 연산자를 IN연산자로 변경해도 결과는 동일하다.
3 ᄃ은 이벤트 시작일자가 2014.10.01'과 같거나 큰 이벤트건수와 그 이벤트들을 기준으로 회원별 이메일 발송건수를 비교하는 것이다.
4 GROUP BY 및 집계함수를 사용하지 않고 HAVING절을 사용하였으므로 SQL이 실행되지 못하고 오류가 발생한다.[정답] 3번
[해설]
이벤트 시작일자가 2014.10.01 이후인 이벤트들을 대상으로 회원별로 이메일 발송 건수를 구한 뒤, 해당 건수가 이벤트 건수보다 작은 회원들의 정보를 추출하는 SQL입니다. GROUP BY 및 집계 함수 대신 HAVING 절을 사용하여 결과를 필터링하고 있습니다.
728x90728x90'<자격증> > [SQLD]' 카테고리의 다른 글
SQLD 자격검증실전문제 96번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 97번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 99번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 100번 문제 (0) 2023.03.21 SQLD 자격검증실전문제 101번 문제 (0) 2023.03.21