반응형
--11)분석함수
--특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 합계 및 카운트 등을 계산 할 수 있는 함수
--집계함수의 한계
select COUNT(*) --집계함수는 집계의 결과만을 출력
from product p ;
--분석 함수는 집계의 결과 및 집합(테이블의 내용)을 함께 출력한다.
select COUNT(*) OVER(), A.*
from product A;
----------------------------------------------------------
--12)AVG()함수
--분석함수 AVG() 부터 본격적으로 분석함수를 학습한다.
--그전에 분석함수의 문법에 대해서 간략히 알고 넘어간다.
--분석 함수 문법
select C1, 분석함수(C2,C3,...) over (partition by C4 order by C5)
from TABLE_NAME; --사용하고자 하는 분석함수를 쓰고 대상 컬럼을 기재한 후 partition BY에서
--값을 구하는 기준 컬럼을 쓰고 ORDER BY에서 정렬 컬럼을 기재한다.
--전체 평균 구하기
select AVG(PRICE) --집계함수는 집계결과만 출력
from product p;
--GROUP BY + AVG 구하기
select B.GROUP_NAME, AVG(PRICE)
from product A
inner join PRODUCT_GROUP b
on(A.GROUP_ID = B.GROUP_ID)
group by B.group_NAME;
--분석함수를 사용하면
--보여줄거 다 보여주면서
--GROUP B의 평균을 볼 수 있다.
select
A.PRODUCT_NAME, A.PRICE,
B.GROUP_NAME, AVG(A.PRICE) OVER(partition by B.GROUP_NAME)
from product a
inner join PRODUCT_GROUP b
ON(A.GROUP_ID = B.GROUP_ID);
반응형
'DataBase' 카테고리의 다른 글
[postgreSQL] FIRST_VALUE, LAST_VALUE 함수 (0) | 2021.09.15 |
---|---|
[postgreSQL] ROW_NUMBER, RANK, DENSE_RANK함수 (0) | 2021.09.15 |
[postgreSQL] [그룹함수] GROUPING SETS, ROLLUP, CUBE (0) | 2021.09.15 |
[postgreSQL] ANY 연산자, ALL 연산자,EXISTS 연산자 (0) | 2021.09.15 |
[postgreSQL] 서브 쿼리 종류 (0) | 2021.09.14 |
댓글