데이터 분석/SQL

[SQL 문법] AVG 함수

참치바나나 2020. 11. 5. 21:26

group_name 별 평균 가격을 알고 싶다

이전 글에서 준비한 product, product_group 테이블을 inner join 후 avg 함수 사용

SELECT
	a.group_name ,
	avg(price)
FROM
	product_group a
INNER JOIN product b 
	ON (a.group_id = b.group_id)
GROUP BY
	a.group_name;

제품의 가격과 그 제품의 그룹 별 평균 가격을 같이 보고 싶다

이 때 분석함수를 사용

SELECT
	b.product_name ,
	b.price ,
	a.group_name ,
	avg(b.price) OVER(PARTITION BY a.group_name)
FROM
	product_group a
INNER JOIN 
	product b 
	ON (a.group_id = b.group_id);

GROUP BY는 없어도 되고,

제품의 가격과 그 제품의 그룹 별 누적 평균 가격을 같이 보고 싶다

누적 집계에는 ORDER BY 사용

SELECT
	b.product_name ,
	b.price ,
	a.group_name ,
	avg(b.price) OVER(
		PARTITION BY a.group_name
		ORDER BY b.price)
FROM
	product_group a
INNER JOIN 
	product b 
	ON (a.group_id = b.group_id);