문제요약
핵심포인트
방법
두 테이블을 이너조인한다.
첫번째 방안을 처음에는 case when 으로 푸려고했다. 그러나 이러한 경우는 두 컬럼으로 무엇인가를 구하는게 아니라, 그 컬럼 자체를 뽑는것이기 때문에 where문으로 처리해주어야 한다.
나에게 두번째가 어려웠다. 이걸 어떻게 평균을 구해야하지? product_id가 1인것은 row가 두개나오는데..
이러한 경우에는 그룹바이를 생각해내야했다.. ^^정말바보....
정답
select a.product_id, round(sum(a.price * b.units)/sum(units),2) as average_price
from Prices a inner join UnitsSold b
on a.product_id=b.product_id
where b.purchase_date between a.start_date and a.end_date
group by a.product_id