티스토리 뷰
TEMP 테이블
지난 SQL 포스팅에서는 오라클 날짜 함수에 대해 알아보았다. 이번에는 그룹 함수에 대해 알아보자. 그룹 함수는 이제까지 살펴본 함수와 달리 행들의 집합에 대해 연산을 한 결과를 하나의 ROW로 반환한다. 그렇다고 해서 항상 하나의 ROW가 나오는 것은 아니다. 행들의 집합들에 대해 연산하면 행들의 집합 수 만큼 결과 ROW 가 나온다.
그룹 함수
분류 | 함수 | 기능 |
그룹 함수 | COUNT | 그룹지어진 행들의 수를 반환한다. |
MIN | 그룹지어진 행들의 최소값을 반환한다. | |
MAX | 그룹지어진 행들의 최대값을 반환한다. | |
SUM | 그룹지어진 행들의 합계를 반환한다. | |
AVG | 그룹지어진 행들의 평균을 반환한다. | |
STDDEV | 그룹지어진 행들의 표준편차를 반환한다. | |
VARIANCE | 그룹지어진 행들의 분산을 반환한다. |
COUNT
SELECT COUNT(*)
, COUNT(1)
FROM TEMP;
-- COUNT 함수에는 어떤 형의 컬럼도 올 수 있다.
-- NULL 값이 들어갈 가능성이 없는 컬럼을 함수 안에 넣는다면 *를 넣는 것과 동일 하다.
-- NULL 값은 결과에 포함되지 않는다.
SELECT COUNT(EMP_ID)
, COUNT(HOBBY)
FROM TEMP;
-- 그룹을 지어준 직급 단위로 ROW가 반환된다.
SELECT LEV
, COUNT(*)
, COUNT(HOBBY)
FROM TEMP
GROUP BY LEV;
-- LEV가 '과장' 이면서 SALARY 가 40000000 이상인 카운트
SELECT COUNT(*)
FROM TEMP
WHERE LEV = '과장'
AND SALARY >= 40000000;
MIN
-- 제일 빠른 사번
SELECT MIN(EMP_ID)
FROM TEMP;
-- 직급별 제일 빠른 사번
SELECT LEV
, MIN(EMP_ID)
FROM TEMP
GROUP BY LEV;
MAX
-- 직급별 제일 느린 사번
SELECT LEV
, MAX(EMP_ID)
FROM TEMP
GROUP BY LEV;
SUM, AVG
-- 직급별 연봉의 합, 평균, 카운트
-- 평균에서의 NULL과 0은 완전히 다르다
-- AVG = SUM/COUNT 로 구해지는데 COUNT에서 제외가 되어 AVG 값이 달라진다.
-- NULL 값에 유의 해야 한다.
SELECT LEV
, SUM(SALARY)
, AVG(SALARY)
, COUNT(1)
FROM TEMP
GROUP BY LEV;
'데이터베이스 > SQL' 카테고리의 다른 글
[SQL] DBMS 종류에 따른 rownum (0) | 2019.09.23 |
---|---|
[SQL] 오라클(Oracle) 집합 연산자 (0) | 2019.06.08 |
[SQL] 오라클(Oracle) 내장 함수 (날짜 함수) (0) | 2019.06.04 |
[SQL] 오라클(Oracle) 내장 함수 (숫자 함수) (0) | 2019.06.02 |
[SQL] 오라클(Oracle) 내장 함수 (문자 함수) (0) | 2019.05.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- 경력관리
- sort algorithm
- React
- 개발환경
- 소프트웨어공학
- 이직
- 제주도 3박4일 일정
- 리액트 16
- Java
- spring
- 자바스크립트
- 프로그래머
- 오라클 내장 함수
- 회고
- SQL
- 정렬 알고리즘
- Collection
- 리눅스 명령어
- 자바
- 제주도 여행
- Maven
- 프로그래머스
- javascript
- 리액트
- 오라클
- Eclipse
- Linux 명령어
- 성능분석
- Tomcat
- effective java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함