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

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

[매출]

매출번호지점코드금액
1A300
2A250
3B90
4B400
5C120
㉠ SELECT 지점코드, SUM(금액)
     FROM 매출
    GROUP BY 지점코드
   HAVING COUNT(*) >= 2;

㉡ SELECT SUM(금액)
     FROM 매출
   HAVING SUM(금액) > 0;

㉢ SELECT 지점코드, SUM(금액)
     FROM 매출
    WHERE SUM(금액) > 500
    GROUP BY 지점코드;

㉣ SELECT 지점코드, COUNT(*)
     FROM 매출
    WHERE 금액 > 100
    GROUP BY 지점코드
   HAVING 지점코드 <> 'B';
1
㉢
2
㉡
3
㉠
4
㉣
해설

WHERE 절은 그룹이 만들어지기 전에 행 단위로 처리되므로 집계 함수를 쓸 수 없고, 그룹 조건 SUM(금액) > 500 은 HAVING 절로 옮겨야 한다.

HAVING 에는 SELECT 목록에 없는 집계나 GROUP BY 열도 조건으로 쓸 수 있다.

  • ㉠은 SELECT 에 없는 COUNT(*) 를 HAVING 에 써도 정상 실행된다.
  • ㉡은 GROUP BY 없이 테이블 전체를 한 그룹으로 보고 HAVING 을 적용한다.
  • ㉣은 WHERE 로 행을 거른 뒤 GROUP BY 열 조건을 HAVING 에 둔 형태라 정상이다.

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

이어서 풀어보기

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