헤맨 만큼 내 땅
[SQL] 공부하다 깨달은 (4) 본문
[실습] 50세 이상 고객의 연령에 따라 경로 할인율을 적용하고, 음식 타입별로 원래 가격과 할인 적용 가격 합을 구하기
-(조회 컬럼 : 음식 타입, 원래 가격, 할인 적용 가격)
-할인 : (나이-50)*0.005
-고객 정보가 없는 경우도 포함하여 조회, 할인 금액이 큰 순서대로 정렬
1차 문제 풀이 시도
1. 어떤 테이블에서 데이터를 뽑을 것인가
-customers
-food_orders
2. 어떤 컬럼을 이용할 것인가
최종 컬럼: cuisine_type, price, total price
서브쿼리:
customers - costomer_id, ago, vat
food_orders - cuisine_type, price, quantity + commission rate,
3. 어떤 조건을 지정해야 하는가
음식타입별 1개 가격 : price/quantity
할인 적용 가격 : if(age>=50,0.005,1) commission rate
-> 만약 나이가 50살보다 많거나 같다면 수수료율이 *0.005이고, 아니면 *1임
원래 가격과 할인 적용 가격 합 : price * commission rate total price
4. 어떤 함수 (수식) 을 이용해야 하는가.
->lift join, if 조건문, order by, group by
할인 금액이 큰 순서대로 정렬: order by total price dsec
음식 타입별 : group by cuisine_type
2차시도
1. 어떤 테이블에서 데이터를 뽑을 것인가
-customers
-food_orders
2. 어떤 컬럼을 이용할 것인가
최종 컬럼: cuisine_type, price, total price
서브쿼리:
customers - costomer_id, ago, vat
food_orders - cuisine_type, price
3. 어떤 조건을 지정해야 하는가
원래 가격의 총합, 할인 적용 가격의 총합 : sum(price), sum(total price)
음식 타입별 : group by cuisine_type
할인 적용 가격 : case when age>=50 then (age-50)*0.005 else 0
-> 만약 나이가 50살보다 많거나 같다면 수수료율이 *0.005이고, 아니면 *1임
원래 가격과 할인 적용 가격 합 : price * commission rate total price
4. 어떤 함수 (수식) 을 이용해야 하는가.
->left join, case when 조건문, order by, group by
할인 금액이 큰 순서대로 정렬: order by total price dsec
음식 타입별 : group by cuisine_type
/*메인 쿼리에서 보여줘야하는 컬럼-음식 타입, 원래 가격, 할인 적용 가격*/
select cuisine_type,sum(price) original_price ,sum(price_discount_per) discount_price/*메인쿼리에서는 음식 타입별로 원래 가격과 할인 적용 가격 합*/ from (select a.customer_id,b.cuisine_type,a.age,b.price, case when age>=50 then (age-50)*0.005 /*만약 나이가 50살보다 많거나 같다면 수수료율이 0.005이고,*/ else 0 end price_discount_per /* 아니면 0임*/ from customers a left join food_orders b on a.customer_id = b.customer_id /*고객정보 없는 경우도 포함할거임*/ order by 5 desc)a /*수수료순으로 내림차순 할거임*/ group by 1 |
지금 뭐 틀렸는데. 또 뭐지
내일 다시해봐야지 승질나...
'데이터' 카테고리의 다른 글
[SQL] 자격증 준비 (2) 기본 용어 이해 (1) | 2025.04.13 |
---|---|
[SQL] 자격증 준비 (1) SQlD란? (0) | 2025.04.13 |
[SQL] 공부하다 깨달은 (3) (0) | 2025.04.06 |
[SQL] 공부하다 깨달은 (2) (0) | 2025.04.06 |
[SQL] 공부하다 깨달은 (1) (0) | 2025.04.03 |