중복

Hyuntae Jung·2022년 7월 24일
0

MS SQL

목록 보기
10/41
post-thumbnail

1. 중복을 없앤 후 계산

SELECT COUNT(DISTINCT job) AS [직급 수]
  FROM employee;

2. GROUP BY

: 최댓값, 최솟값, 합계, 평균 등을 칼럼을 기준으로 그 칼럼의 값 별로 보고자 하는 경우에 사용한다.

SELECT deptNo, MAX(salary) AS '부서별 최대급여' FROM employee
GROUP BY deptNo;

GROUP BY 절 다음에는 AS를 사용할 수 없다.(반드시 컬럼명을 사용해야 한다.)

SELECT deptNo, AVG(salary) AS '평균 급여' 
  FROM employee
GROUP BY deptNo;

SELECT deptNo, salary 
  FROM employee
ORDER BY deptNo;

3. 단일 칼럼과 집계함수 같이 사용하기

SELECT deptNo, SUM(salary) AS '급여 총액', AVG(salary) AS '평균 급여'
  FROM employee;

위와 같이 단일 칼럼과 집계함수 같이사용할때 Error가 발생한다.

SELECT deptNo, SUM(salary) AS '급여 총액', AVG(salary) AS '평균 급여'
  FROM employee
GROUP BY deptNo;

위와 같이 GROUP BY를 이용하면 단일 칼럼과 집계함수를 같이 추출 할 수 있다.

SELECT deptNo, COUNT(commission) AS '커미션을 받는 사원의 수'
  FROM employee
GROUP BY deptNo;

3. HAVING

: 그룹의 결과를 제한 하고자 할 때 사용한다.

WHERE절과 차이점? GROUP BY 다음에 사용한다.

SELECT deptNo, AVG(salary) AS '평균 급여'
  FROM employee
GROUP BY deptNo
HAVING AVG(salary) > 500;

4. WHERE와 HAVING

4.1. WHERE

: 테이블에서 데이터를 가져올 때 그 테이블에 조건에 해당하는 자료만 검색한다

집계함수를 사용할 수 없다.

4.2. HAVING

: 집계함수를 이용하여 조건을 적용할 때 사용한다. 그룹에 대한 결과값에서 제한을 두고자 할 때 사용한다.

SELECT deptNo, MAX(salary) '최대 급여', MIN(salary) '최소 급여'
  FROM employee
GROUP BY deptNo
HAVING MAX(salary) > 500;

강의: ms sql 2014 제대로 배우기 1

0개의 댓글