//집계 함수, Aggregation Function
- WHERE 절에서는 집계 함수를 사용할 수 없다.
- MIN, MAX, SUM, COUNT, AVG
// MIN, MAX
- object max(컬럼명) / object min(컬럼명)
select max(height), min(height) from tblComedian; --숫자형
select max(name), min(name) from tblInsa; --문자형
select max(ibsadate), min(ibsadate) from tblInsa; --날짜형
- 최솟값 / 최댓값반환
- 숫자형, 문자형, 날짜형 모두 적용
- min
SELECT MIN(AGE) FROM MEMBER;
- max
SELECT MAX(AGE) FROM MEMBER;
// SUM
- number sum(컬럼명)
select sum(height) from tblComedian;
- 해당 컬럼의 합을 구한다.
- 숫자형만 적용 가능
SELECT SUM(AGE) FROM MEMBER;
select
sum(basicpay) as "지출 급여 합",
sum(sudang) as "지출 수당 합",
-- sum(basicpay) + sum(sudang) as "총 지출"
sum(basicpay + sudang) as "총 지출"
from tblInsa;
// AVG
- number avg(컬럼명)
select avg(basicpay) from tblInsa;
- 해당 컬럼의 평균값을 구한다.
- 숫자형만 적용 가능
- null 값은 제외함.
SELECT AVG(AGE) FROM MEMBER;
select
avg(population) as "평균1",
sum(population) / count(*) as "평균2",
sum(population) / count(population) as "평균3"
from tblCountry;
// COUNT
- number count(컬럼명)
select count(capital) from tblCountry;
- 결과 테이블의 레코드 수를 반환한다.
- null 레코드는 count에서 제외된다.
> select count(*) from tblCountry; 를 사용하면 일부 컬럼값이 null이어도 개수를 구할 수 있다.
SELECT COUNT(AGE) FROM MEMBER;
- ★★★case-end 이용하여 count
select
count(*) as 전체인원수,
count(case
when gender = 'm' then '1'
end) as 남자인원수,
count(case
when gender = 'f' then '1'
end) as 여자인원수
from tblComedian;
//GROUP BY
- 기준을 설정하여 기준에 따라 묶을 수 있다.
- 집계 함수와 같이 사용하곤 한다.
- GROUP BY에 포함된 값과 집계함수는 함께 조회할 수 있지만, 그 외의 값은 사용할 수 없다.
~ SELECT REGDATE, COUNT(ID) FROM NOTICE GROUP BY WRITER_ID > 불가!!!!!!
- 작성자별로 글을 몇 개 작성하였는지 카운트
SELECT WRITER_ID, COUNT(ID) COUNT FROM NOTICE GROUP BY WRITER_ID;
- 작성자별로 글을 몇 개 작성하였는지 카운트 + 내림차순으로 정렬하여 조회
SELECT WRITER_ID, COUNT(ID) COUNT FROM NOTICE GROUP BY WRITER_ID ORDER BY COUNT(ID) DESC;
// HAVING절
- 회원별 게시글 수 조회(단, 게시글 수가 2개 미만인 레코드만 조회)
SELECT WRITER_ID, COUNT(ID) COUNT FROM NOTICE GROUP BY WRITER_ID HAVING COUNT(ID) < 2;
'데이터베이스(DB) > Oracle' 카테고리의 다른 글
[Oracle] 서브 쿼리 (0) | 2023.02.20 |
---|---|
[Oracle] 순위 함수 (0) | 2023.02.20 |
[Oracle] NULL 관련 함수, DECODE 함수 (0) | 2023.02.19 |
[Oracle] 변환 함수 (0) | 2023.02.19 |
[Oracle] 날짜 시간 함수 (0) | 2023.02.18 |