SQLD(SQL 개발자) 기출 · 그룹 함수

다음 중 아래의 테이블에서 SQL을 실행할 때 결과로 가장 적절한 것은?
본문)
[SQL]
SELECT CASE
         WHEN GROUPING(A.서비스ID) = 0 THEN A.서비스ID
         ELSE '합계'
       END AS 서비스ID
     , CASE
         WHEN GROUPING(B.가입일자) = 0 THEN NVL(B.가입일자, '-')
         ELSE '소계'
       END AS 가입일자
     , COUNT(B.회원번호) AS 가입건수
  FROM 서비스 A
  LEFT OUTER JOIN 서비스가입 B
    ON (A.서비스ID = B.서비스ID
   AND B.가입일자 BETWEEN '2013-01-01' AND '2013-01-31')
 GROUP BY ROLLUP(A.서비스ID, B.가입일자);

이 문제 풀어보기

정답 및 해설 보기

정답: 2번

ROLLUP(A.서비스ID, B.가입일자)은 서비스ID별 가입일자 상세 행, 서비스ID별 소계, 전체 합계를 차례로 생성한다. 또한 LEFT OUTER JOIN을 사용했으므로 가입내역이 없는 서비스ID 004도 결과 집합에 남는다. 이때 COUNT(B.회원번호)는 NULL을 세지 않으므로 004의 가입건수는 0으로 표시된다. 따라서 004에 대해 가입일자 '-' 행과 소계 0 행이 함께 나오고, 마지막에 전체 합계 8건이 출력되는 2번이 정답이다. 4번은 004가 아예 보이지 않아 INNER JOIN 결과에 해당한다.
이 단원 연속 풀기 · 그룹 함수개념서 「GROUP BY · HAVING」 읽기

이 단원 공개 기출 42문항

  1. 아래의 데이터 모델에서 SQL을 이용하여 표(지역별 월별 이용량)와 같은 형식의 데이터를 추출하려고 할 때 올바른 SQL 문장은? [그림]그룹 함수
  2. 다음 설명 중 가장 적절한 것은?그룹 함수
  3. 자재발주 테이블에 SQL을 수행하여 아래와 같은 결과를 얻었다. 다음 중 (ㄱ)에 들어갈 문장으로 옳은 것은? [그림]그룹 함수
  4. 다음 중 월별매출 테이블을 대상으로 아래 SQL을 수행한 결과인 것은? [그림]그룹 함수
  5. SQL 문장에서 집합별로 집계된 데이터에 대한 조회 조건을 제한하기 위해서 사용하는 절은 어느 것인가?그룹 함수
그룹 함수 기출 전체 보기 →