Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 more
Archives
Today
Total
관리 메뉴

헤맨 만큼 내 땅

[SQL] 공부하다 깨달은 (3) 본문

데이터

[SQL] 공부하다 깨달은 (3)

Ddani_ng 2025. 4. 6. 17:38

문제

[실습] 음식 타입별 총 주문수량과 음식점 수를 연산하고, 주문수량과 음식점수 별 수수료율을 산정하기

  • (음식점수 5개 이상, 주문수 30개 이상 → 수수료 0.5% 음식점수 5개 이상, 주문수 30개 미만 → 수수료 0.8% 음식점수 5개 미만, 주문수 30개 이상 → 수수료 1% 음식점수 5개 미만, 주문수 30개 미만 → 수수로 2%)

1차 문제 풀이 시도

 

음식 타입별 총 음식점 수를 계산하는 것 까진 성공한 듯 했다. 그러나 음식 타입별 총 주문수량이 (sum(quantity)) 가 뭔가... 뭔가 오류 난거같다. 그래서 고민해보다가 내가 음식점 수를 먼저 구한 탓이 아닐까 싶었다.

 

그래서 다시 이번엔 총주문 수령 부터 구한 후 총주문 수량 쿼리를 서브쿼리로 뺀 후, 음식점 수를 구하는 방향으로 가보기로했다. 그 다음에 수수료 산정하고, 수수료 계산하면 되지 않을까.

 

자 다시해보자.

 

 


2차 문제풀이 시도

select sido,cuisine_type,sum_quan,count_reata,substr(avg_price,1,5),
case when sum_quan >=5 and count_reata>=30 then 0.005
when sum_quan >=5 and count_reata<30 then 0.008
when sum_quan <5 and count_reata>=30 then 0.01
when sum_quan <5 and count_reata<30 then 0.02
end fee
from
(select cuisine_type,avg(price) avg_price,substr(addr,1,2) sido,
sum(quantity) sum_quan,
count(distinct restaurant_name) count_reata
from food_orders
group by 1
)a

 

풀었다! 풀어보니 총주문 수량과 음식점 수는 한번에 첫 쿼리에서 계산할 수 있더라. 여기서 내가 간과한 점은 겹치는 음식점 명이 있을 수 있으니 distict를 써서 겹치는 음식점 명이 없도록 카운트 해야한다는 점이었다. 

'데이터' 카테고리의 다른 글

[SQL] 자격증 준비 (1) SQlD란?  (0) 2025.04.13
[SQL] 공부하다 깨달은 (4)  (0) 2025.04.11
[SQL] 공부하다 깨달은 (2)  (0) 2025.04.06
[SQL] 공부하다 깨달은 (1)  (0) 2025.04.03
[SQL] 기본문 구조  (0) 2025.04.03