본문 바로가기
DataBase

[postgreSQL] [분석함수] AVG()

by 바까 2021. 9. 15.
반응형
--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);
반응형

댓글