일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 슬림3
- SQL
- 데이터베이스 UPDATE
- 오라클
- 레노버 아이디어패드 슬림3
- 데이터베이스 기초
- 데이터베이스 예제
- 코딩입문
- 코딩초보자
- 오라클 DELETE
- 티모장인
- 탑마이장인
- lenovo ideapad 3
- 개발자준비
- 라이젠노트북
- 데이터베이스
- 데이터베이스 DELETE
- 데이터베이스 집합연산자
- 사무용 노트북
- 자바초보
- 데이터베이스 JOIN
- 가성비 노트북
- IdeaPad 3 15ABA7
- 자바입문
- 데이터베이스기초
- 오라클UPDATE
- 레노버 노트북
- 코딩일기
- 코린이
- 레노버 슬림3
- Today
- Total
스퐁지송 개발노트
데이터베이스 그룹함수(COUNT,SUM,MAX,MIN,AVG),그룹화(GROUP BY) 본문
그룹함수
COUNT
SELECT COUNT(*) FROM EMP;
전체 총 레코드의 수를 세줌
SELECT COUNT(ENAME) FROM EMP;
-> 필드값을 줄순 있지만 NULL값은 갯수에 포함해서 세주지않므로
(*) -> 전체갯수를 셀땐
EX)직책이 MANAGER인 사람들의 인원수
SELECT COUNT(*) FROM EMP WHERE JOB='MANAGER';
EX)추가수당이 없는 사람수
SELECT COUNT(*) FROM EMP WHERE COMM IS NULL OR COMM=0;
(NULL인 사람과 0인 사람이 있기때문)
SUM
SELECT SUM(SAL) FROM EMP;
총합계 구하기
EX) 급여와 추가수당의 합계
SELECT SUM(SAL), SUM(COMM) FROM EMP;
EX)부서번호가 20인 사람들의 급여 합계
SELECT SUM(SAL) FROM EMP WHERE DEPTNO=20;
MAX, MIN, AVG
최대값 최소값 평균
예시)
SELECT MAX(SAL), MIN(SAL), AVG(SAL) FROM EMP;
그룹화
GROUP BY
형식)
SELECT 컬럼(*)
FROM 테이블명
WHERE 조건식(레코드에 대한 조건식)
GROUP BY 그룹화할 컬럼
HAVING 그룹에 대한 조건식
ORDER BY 정렬할 컬럼
EX) 부서번호별 급여의 평균 계산해서 출력
SELECT DEPTNO, AVG(SAL)
FROM EMP
GROUP BY deptno;
DEPTNO(부서번호)별로 그룹화되어 SAL(급여)의 평균 출력
EX) 직책별 부서버번호별 인원수와 급여의 합계를 출력
SELECT JOB,COUNT(*),SUM(SAL),DEPTNO
FROM EMP
GROUP BY JOB,DEPTNO;
JOB, DEPTNO별로 그룹화되어 해당 JOB과 DEPTNO별로
COUNT와 SAL합계 출력
EX) 직책별 급여 합계를 출력, 급여합계가 5000이상인것만(조건이 들어감)
SELECT JOB AS 직책,SUM(SAL) AS 급여합계
FROM EMP
GROUP BY JOB
HAVING SUM(SAL)>=5000;
-- 그룹에 대한 조건식은 WHERE이 아닌 HAVING 조건식이 들어감
EX)부서번호별 직책별 급여가 2000이상인 급여평균을 출력 단, 급여평균은 2500이상인 데이터만 표시
부서번호 기준으로 오름차순, 직책을 기준으로 내림차순 정렬
SELECT DEPTNO, JOB, AVG(SAL)
FROM EMP
WHERE SAL>=2000 -- 다 제외가 된 후에 평균 계산이 시작
GROUP BY DEPTNO, JOB --부서번호 기준, 직책 정렬
HAVING AVG(SAL)>=2500
ORDER BY DEPTNO, JOB DESC; --DEPTNO는 어차피 기본값이 오름차순이라 ASC 생략
EX)부서번호별 급여평균 , 최고급여,최저급여,인원수를 출력
급여평균은 소수첫째자리에서 반올림
SELECT DEPTNO AS 부서번호,
ROUND(AVG(SAL),0) AS 급여평균, -- 평균급여의 소숫점첫째자리까지
MAX(SAL) AS 최고급여,
MIN(SAL) AS 최소급여,
COUNT(*) AS 인원수
FROM EMP
GROUP BY DEPTNO;
EX)직책이 동일한 인원수가 3명 이상인 데이터만 직책,인원수출력
'DATABASE' 카테고리의 다른 글
데이터베이스 정규화 해보기 예제 (0) | 2023.01.11 |
---|---|
데이터베이스 제1,2,3 정규화/정규형 (0) | 2023.01.11 |
데이터베이스 함수 예제 (0) | 2023.01.10 |
데이터베이스(오라클) 함수 (0) | 2023.01.10 |
데이터베이스 (오라클 다운, 기초) (0) | 2023.01.09 |