그룹함수 |
N개의 값을 읽어 1개의 결과를 반환 (그룹별로 하나의 결과를 내놓음) 결과는 언제나 하나!!!! |
-- SUM(숫자타입컬럼) : 해당 컬럼값들의 총 합계 반환 [예시] - 전체 사원들의 총 급여 합계 SELECT SUM(SALARY) 급여합계 FROM EMPLOYEE; -- AVG(숫자타입컬럼) : 해당 컬럼값들의 평균값을 구해서 반환 [예시] - 전체 사원들의 평균 급여 SELECT ROUND(AVG(SALARY)) FROM EMPLOYEE; |
-- MIN(숫자타입컬럼) : 해당 컬럼값들의 가장 작은 값 반환 [예시] - 전체 사원들 중 최저급여, 가장 예전에 입사한 날짜, 가장 작은 이름값(가나다) SELECT MIN(SALARY), MIN(HIRE_DATE), MIN(NAME) FROM EMPLOYEE; -- MAX(숫자타입컬럼) : 해당 컬럼값들의 가장 큰 값 반환 [예시] SELECT MAX(SALARY), MAX(HIRE_DATE), MAX(EMP_NAME) FROM EMPLOYEE; |
-- COUNT : 조회된 행 개수 반환 -- COUNT(*) : 조회 결과에 해당하는 모든 행 개수를 세서 반환 -- COUNT(컬럼명) : NULL이 아닌 행 개수만 세서 반환 -- COUNT(DISTINCT 컬럼명) : 중복값이 있을 경우 하나로만 개수 COUNT, NULL 포함X |
-- 1. 직원명과 주민번호 조회함
-- 단, 주민번호 9번째 자리부터 끝까지 ** 문자로 채움
SELECT DEPT_NAME, RPAD(SUBSTR(EMP_NO, 1, 8) , 14, '*'))
FROM EMPLOYEE;
-- 2. 직원명, 직급코드, 연봉(원) 조회
-- 단 연봉은 000,000,00으로 표시되게
-- 연봉은 보너스 적용된 1년치 급여
SELECT EMP_NAME, JOB_CODE, TO_CHAR((SALARY + (SALARY * NVL(BONUS, 0) ) * 12), 'L999,999,999')
FROM EMPLOYEE;
--3. 부서코드 D5, D9인 직원들 중 2004년도에 입사한 직원의 수
SELECT COUNT(*)
FROM EMPLOYEE
WHERE DEPT_CODE IN('D5', 'D9')
AND SUBSTR(HIRE_DATE, 1, 2) = '04'
-- WHERE SUBSTR(HIRE_DATE, 1, 2) = '04' AND(DEPT_CODE = 'D5' OR DEPT_CODE = 'D9');
'국비 > Oracle' 카테고리의 다른 글
[03-1] Oracle DML (SELECT) SUBQUERY (0) | 2022.05.03 |
---|---|
[02-3] Oracle DML (SELECT) JOIN (0) | 2022.05.02 |
[02-2] Oracle DML (SELECT) , GROUP BY (0) | 2022.05.02 |
[01-2] Oracle DML (SELECT) 단일행함수 (0) | 2022.04.29 |
[01-1] Oracle DML (SELECT) 기본 문법 (0) | 2022.04.29 |