다음 SQL 중 실행 시 오류가 발생하는 것은?[계약]계약번호상품코드설… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 SQL 중 실행 시 오류가 발생하는 것은?

[계약]

계약번호상품코드설계사
1A서윤
2A한결
3B서윤
4B서윤
5C태오
㉠ SELECT 상품코드, COUNT(*)
     FROM 계약
    GROUP BY 상품코드
   HAVING 상품코드 <> 'B';

㉡ SELECT COUNT(*)
     FROM 계약
    GROUP BY 상품코드, 설계사;

㉢ SELECT 상품코드, COUNT(*)
     FROM 계약
    GROUP BY 상품코드
   HAVING 설계사 = '서윤';

㉣ SELECT 상품코드, COUNT(DISTINCT 설계사)
     FROM 계약
    GROUP BY 상품코드;
1
㉡
2
㉢
3
㉠
4
㉣
해설

HAVING 은 그룹마다 한 번 평가되므로 GROUP BY 열이나 집계 함수만 쓸 수 있는데, ㉢의 설계사는 그룹화되지 않은 열이라 오류가 난다.

설계사로 거르려면 그룹화 전에 처리되는 WHERE 절로 옮겨야 한다.

  • ㉠은 그룹화 열인 상품코드를 HAVING 에 써서 정상 실행된다.
  • ㉡은 GROUP BY 열을 SELECT 에 쓰지 않아도 되므로 4행이 나온다.
  • ㉣은 그룹별로 서로 다른 설계사 수를 세는 정상 집계다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 10회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기