SELECT COUNT(DISTINCT job) AS [직급 수]
FROM employee;
: 최댓값, 최솟값, 합계, 평균 등을 칼럼을 기준으로 그 칼럼의 값 별로 보고자 하는 경우에 사용한다.
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;
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;
: 그룹의 결과를 제한 하고자 할 때 사용한다.
WHERE절과 차이점? GROUP BY 다음에 사용한다.
SELECT deptNo, AVG(salary) AS '평균 급여'
FROM employee
GROUP BY deptNo
HAVING AVG(salary) > 500;
: 테이블에서 데이터를 가져올 때 그 테이블에 조건에 해당하는 자료만 검색한다
집계함수를 사용할 수 없다.
: 집계함수를 이용하여 조건을 적용할 때 사용한다. 그룹에 대한 결과값에서 제한을 두고자 할 때 사용한다.
SELECT deptNo, MAX(salary) '최대 급여', MIN(salary) '최소 급여'
FROM employee
GROUP BY deptNo
HAVING MAX(salary) > 500;
강의: ms sql 2014 제대로 배우기 1