데이터베이스 기초

사원 표의 부서 열에 위의 행부터 차례로 영업, 개발, 영업, 총무, 개발, 영업의 값이 들어 있다(전체 6행). SELECT DISTINCT 부서 FROM 사원의 결과는 몇 행이 되는가?

  1. A2행
  2. B3행
  3. C6행
정답과 해설 보기

정답: B. 3행

DISTINCT는 결과에서 중복된 행을 제거하여 같은 값을 한 행으로 합칩니다. 부서 값의 종류는 영업, 개발, 총무의 3가지이므로 결과는 3행입니다. DISTINCT를 붙이지 않고 SELECT 부서 FROM 사원으로 하면 중복을 포함하여 6행이 그대로 반환됩니다. 2행은 두 번 이상 나타나는 부서(영업과 개발)만 센 경우의 수로, 이는 SELECT 부서 FROM 사원 GROUP BY 부서 HAVING COUNT(*) >= 2 같은 질의의 결과에 해당합니다.

이 분야 연습하기 분야로 돌아가기

데이터베이스 기초의 다른 문제

  1. SQL에서 DELETE FROM 사원을 WHERE 절 없이 실행했을 때의 결과로 올바른 것은?
  2. 시험 표의 점수 열에 80, NULL, 70, 90의 4개 값이 있다(NULL은 미응시를 나타낸다). SELECT AVG(점수) FROM 시험의 결과는?
  3. 성적 표의 점수 열에 50, NULL, 70, NULL, 90, 30의 6개 값이 있다. SELECT COUNT(*), COUNT(점수), AVG(점수) FROM 성적의 결과를 순서대로 나열한 것은?
  4. 사원 표(사원번호, 부서, 급여)에서 부서별 평균 급여가 300 이상인 부서와 그 평균 급여를 구하려고 한다. 올바른 SQL 문은?
  5. 매출 표(매장, 금액)에 (A, 500), (A, 700), (B, 300), (B, 400), (C, 1200), (D, 200), (D, 900)의 7개 행이 있다. SELECT 매장, SUM(금액) FROM 매출 GROUP BY 매장 HAVING SUM(금액) >= 1000의 결과는 몇 행이 되는가?