solvesql - SQL문제
solvesql - 할부는 몇 개월로 해드릴까요(Group by)
정차노
2024. 11. 12. 23:13
문제 출처 : https://solvesql.com/problems/installment-month/
https://solvesql.com/problems/installment-month/
solvesql.com
1. 문제
난이도3, 정답률 17.43%
olist_order_payments_dataset 테이블에는 각 주문의 결제 정보가 저장되어 있습니다.
고객이 Olist 상점에서 신용카드로 주문한 내역을 할부 개월 수 별로 나누어 살펴보려고 합니다. 할부 개월 수 별로 주문 수, 최소 결제 금액, 최대 결제 금액, 평균 결제 금액을 집계해주세요. 결과 데이터에는 5개의 컬럼이 들어가야 합니다.
- payment_installments - 할부 개월 수
- order_count - 주문 수
- min_value - 최소 결제 금액
- max_value - 최대 결제 금액
- avg_value - 평균 결제 금액
2. 조건
- 결제 수단이 신용카드
- 할부개월수 별로 주문수, 최소, 최대, 평균 결제금액 집계
3. 쿼리
-- 고객이 Olist상점에서 주문 내역을 할부 개월 수별로 나누어 살펴보려고 함
SELECT
oo.payment_installments AS payment_installments
,COUNT(distinct oo.order_id) AS order_count
,MIN(payment_value) AS min_value
,MAX(payment_value) AS max_value
,AVG(payment_value) AS avg_value
FROM olist_order_payments_dataset as oo
WHERE payment_type = 'credit_card'
GROUP BY oo.payment_installments
우선 주문 내역의 할부개월 수 별로 나누어 집계해야하기 때문에 payment_installments로 Group By를 걸어준다. 조건으로는 결제 수단이 credit_card이기 때문에 Where에 조건을 걸어주고 이후에 order_id를 distinct로 걸어 Count를 해줌으로써 주문의 갯수를 확인할 수 있다.
최소, 최대, 평균의 값은 각각 MIN, MAX, AVG집계함수를 사용하여 출력이 가능하다.