Oracle 기준으로 다음 SQL 중 오류가 발생하는 것을 모두 고른 … | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 1회
Oracle 기준으로 다음 SQL 중 오류가 발생하는 것을 모두 고른 것은?

[매출]

지점월금액
강남1120
강남280
잠실160
판교1200
판교230
㉠ SELECT 지점 FROM 매출 GROUP BY 지점 HAVING COUNT(*) >= 2;
㉡ SELECT 지점, SUM(금액) FROM 매출 WHERE SUM(금액) > 100 GROUP BY 지점;
㉢ SELECT 지점, 금액 FROM 매출 GROUP BY 지점;
㉣ SELECT COUNT(*) FROM 매출 HAVING COUNT(*) > 3;
1
㉠, ㉢, ㉣
2
㉡
3
㉡, ㉢
4
㉡, ㉣
해설

집계 함수는 그룹이 만들어진 뒤 평가되므로 WHERE 절에 쓸 수 없고, GROUP BY에 없는 일반 열은 집계 없이 SELECT 절에 올 수 없다.

따라서 WHERE에 SUM을 쓴 ㉡과 그룹 기준이 아닌 금액을 그대로 조회한 ㉢이 오류를 일으킨다.

  • ㉠은 SELECT에 없는 집계를 HAVING에 써도 되므로 정상 실행된다.
  • ㉣은 GROUP BY 없이 테이블 전체를 한 그룹으로 보고 HAVING을 적용한다.
  • ㉡만 고르면 GROUP BY 열 제약을 어긴 ㉢을 놓친 것이다.

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

이어서 풀어보기

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