250x250
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 |
Tags
- With
- 셀프조인
- 활성사용자수
- 파이썬
- UNION
- sql문풀
- 코딩테스트
- join
- 서브쿼리
- 리트코드sql
- 코테
- 위키독스
- leetcode
- 윈도우함수
- 프로그래머스
- 파이썬문풀
- leetcode문풀
- 데이터분석
- with절
- 데이터리안
- GROUPBY
- 문풀
- leetcodesql50
- SQL고득점KIT
- SQL테스트
- mysql
- 약수구하기
- SQL
- levle1
- 프로그래머스문풀
Archives
- Today
- Total
꿈은 데이터분석가, 취미는 계획
[MY SQL] 가격 변동이 있는 제품의 평균 가격 구하기 본문
728x90
출처: [leetcode - SQL50] : 1251. Average Selling Price
문제: 가격변동 정보 테이블과 구매 테이블을 사용하여 제품별 평균 가격 구하기
LEFT JOIN 조건 활용하기
1) 기간별 제품의 가격 정보가 있는 테이블과 판매정보 테이블을 LEFT JOIN(판매되지 않은 제품도 포함되도록)
2) JOIN 조건으로 판매일이 제품가격 정보의 기간에 포함되도록 하기
AND를 사용하여 시작일과 종료일을 구할 수도 있고, BETWEEN을 사용해도 된다.
3) GROUP BY로 제품별 가격의 평균(금액*판매 수 합 / 전체 판매수 합)을 구하기,
IFNULL을 사용하여 판매되지 않은 상품은 0으로 나올 수 있게 하기
SELECT p.product_id, IFNULL(ROUND(SUM(p.price*u.units)/SUM(u.units),2),0) AS average_price
FROM Prices AS p
LEFT JOIN UnitsSold AS u
ON p.product_id = u.product_id
-- AND u.purchase_date >= p.start_date
-- AND u.purchase_date <= p.end_date
AND u.purchase_date BETWEEN p.start_date AND p.end_date
GROUP BY p.product_id
728x90
'Python > 파이썬 문풀' 카테고리의 다른 글
[Python] 프로그래머스 문풀 :: 짝수와 홀수 구분하기 (0) | 2024.01.11 |
---|---|
[Python] 프로그래머스 문풀 :: 정수n의 약수 합 구하기 (1) | 2024.01.06 |
[python] 파이썬 2개의 리스트에서 공통된 값 찾기 (0) | 2024.01.01 |
[python] 파이썬 정렬 sort()와 sorted() 차이 (0) | 2023.12.31 |
[python] 딕셔너리 이해 및 활용하기 (2) | 2023.12.30 |