Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- 웹 스크랩핑
- 티스토리챌린지
- 파이썬 철저입문
- 실전 데이터 분석 프로젝트
- 내일배움
- 스파르타 코딩
- SQL
- harkerrank
- 내일배움카드
- R
- Cluster
- 스파르타
- 프로젝트
- hackerrank
- wil
- 내일배움캠프
- 파이썬 머신러닝 완벽 가이드
- 중회귀모형
- 오블완
- 미세먼지
- TiL
- 파이썬 철저 입문
- 텍스트 분석
- 스파르타코딩
- 회귀분석
- 파이썬
- MySQL
- 파이썬 머신러닝 완벽가이드
- 어쩌다 마케팅
Archives
- Today
- Total
OkBublewrap
Average Selling Price 본문
문제 : Average Selling Price
문제
Write a solution to find the average selling price for each product.
average_price should be rounded to 2 decimal places.
If a product does not have any sold units, its average selling price is assumed to be 0.
Return the result table in any order.
입력 테이블
Pricesproduct_idstart_dateend_dateprice
UnitsSoldproduct_idpurchase_dateunits
풀이
1. JOIN 활용(between date, id)
prices와 UnitsSold를 customer_id와 purchase_date between start_date and end_date를 기준으로 조인합니다.
select p.product_id, p.price * u.units as total, u.units
from prices p
left join unitssold u on u.purchase_date
between p.start_date and p.end_date -- 해당 팔린 날짜에만
and u.product_id = p.product_id -- product_id가 같은 것만
2. 집계함수, null 값 처리
round(coalesce(sum(total) / sum(units), 0), 2)
select product_id, round(COALESCE(sum(total) / sum(units),0), 2) as average_price
from temp_01
group by 1'개발 > SQL' 카테고리의 다른 글
| Project Planning (1) | 2025.01.10 |
|---|---|
| Challenges (0) | 2025.01.10 |
| 특정 기간동안 대여 가능한 자동차들의 대여 비용 구하기 (0) | 2025.01.10 |
| 상품을 구매한 회원 비율 구하기 (0) | 2025.01.10 |
| 입양 시각 구하기 (0) | 2025.01.10 |