--그룹함수 : COUNT(), SUM(), MIN(), MAX(), AVG() 등
-- SUM()과 AVG() 함수는 반드시 숫자타입만 씀.
SELECT COUNT(*), COUNT(commission_pct), SUM(salary), AVG(salary), MIN(salary), MAX(salary), STDDEV(salary)
FROM employees;
--입사년도가 2008년인 사원수와 평균급여, 사원들이 속한 부서 수 출력
--평균급여는 소수점 이하 1자리까지 표시하고 2자리에서 반올림한다.
SELECT COUNT(*) 사원수, ROUND(AVG(salary), 1) 평균급여, COUNT(DISTINCT department_id)
FROM employees
WHERE TO_CHAR(hire_date, 'YYYY') = '2007';
SELECT * FROM employees WHERE department_id IS NULL;
--그룹화
--그룹바이 쓰면 개별 행 못 씀, 별칭 못씀.
--지역별 지역번호(location_id), 부서수를 출력하시오.
--부서수가 10개 이상인 지역만 출력한다.
SELECT location_id, COUNT(department_id)
FROM departments
GROUP BY location_id
HAVING COUNT(department_id) >= 10;
--지역별 지역번호(location_id), 부서수를 출력하시오.
--지역변호가 2000번 이상인 지역만 출력한다..
SELECT location_id, COUNT(department_id)
FROM departments
--WHERE location_id >= 2000;
GROUP BY location_id
HAVING location_id >= 2000;
--지역별 지역번호(location_id), 부서수, 부서명을 출력하시오.
SELECT location_id, COUNT(department_id), department_name --그룹이 된 컬럼만 사용가능.
FROM departments
--WHERE location_id >= 2000;
GROUP BY location_id, department_name;
--연도별 입사자수를 출력하시오. 단 최근년도부터 출력한다.
SELECT TO_CHAR(hire_date, 'YYYY') 입사년도, COUNT(*) 사원수
FROM employees
GROUP BY TO_CHAR(hire_date, 'YYYY')
ORDER BY 입사년도 DESC;
--하반기(7~12월) 월별 입사자수가 5명 이상인 경우 출력하시오.
SELECT TO_CHAR(hire_date, 'MM') 입사월, COUNT(*) 입사자수
FROM employees
WHERE TO_CHAR(hire_date, 'MM') > '06'
GROUP BY TO_CHAR(hire_date, 'MM')
HAVING COUNT(*) >= 5
ORDER BY 입사월;
--부서별 부서번호와 최대급여, 최소급여, 평균, 표준편차를 출력하시오
SELECT department_id, MAX(salary), MIN(salary), TRUNC(AVG(salary),1), TRUNC(STDDEV(salary),1)
FROM employees
GROUP BY department_id;
--부서별 부서번호와 최대급여, 최대급여자 사번을 출력하시오
SELECT department_id, MAX(salary);
최근댓글
최근글
인기글
skin by © 2024 ttuttak