LabHub

고객 데이터 다루기 · SQL 로 답 찾기 · 퀴즈

퀴즈: SQL 로 답 찾기

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. `SELECT * FROM customers WHERE id NOT IN (SELECT customer_id FROM orders);` 가 0건을 반환합니다. 가장 유력한 원인은?

    1. 서브쿼리에 NULL 이 있어 NOT IN 전체가 '알 수 없음' 이 됐다
    2. 실제로 모든 고객이 주문을 했다
    3. 인덱스가 없어 조용히 타임아웃됐다
    4. 서브쿼리 결과가 비어 있다
  2. LEFT JOIN 결과에서 매칭이 없는 행에 대해 `COUNT(t.id)` 와 `COUNT(*)` 는 각각 무엇을 반환합니까?

    1. 두 집계 모두 0
    2. 두 집계 모두 1
    3. COUNT(t.id) 는 0, COUNT(*) 는 1
    4. COUNT(t.id) 는 1, COUNT(*) 는 0
  3. 왼쪽 테이블을 전부 보존하려고 LEFT JOIN 을 썼는데 결과가 INNER JOIN 과 같습니다. 원인은?

    1. 조인 키에 인덱스가 없어서
    2. LEFT JOIN 문법을 잘못 써서
    3. 오른쪽 테이블의 열 조건을 WHERE 절에 붙여 NULL 행이 전부 탈락해서
    4. 데이터에 실제로 매칭 없는 행이 없어서
  4. CSV 를 sqlite 에 `.import` 로 적재한 뒤 `WHERE id = 1001` 이 0건을 반환합니다. 원인은?

    1. `.import` 는 모든 값을 TEXT 로 넣어서 저장된 것은 문자열 '1001' 이다
    2. id 열에 인덱스가 없다
    3. CSV 의 헤더 줄이 그대로 데이터 행으로 들어갔다
    4. id 가 실제로 존재하지 않는다
  5. 전체 티켓이 80건인데 `COUNT(closed_at)` 이 60 입니다. 무슨 뜻입니까?

    1. 티켓 60건만 조회됐다
    2. 20건이 삭제됐다
    3. 20건은 closed_at 이 NULL, 즉 아직 열려 있다
    4. closed_at 에 잘못된 값이 20건 있다
  6. 집계 결과를 고객에게 보고하기 전에 반드시 함께 확인할 것은?

    1. 그 쿼리의 실행 시간
    2. 분모 — 전체가 몇 건이고 그중 몇 건이 조건에 걸렸는지
    3. 대상 테이블의 전체 행 수와 크기
    4. 쿼리의 인덱스 사용 여부