97. 1174. Immediate Food Delivery II
Table: Delivery
+-----------------------------+---------+
| Column Name | Type |
+-----------------------------+---------+
| delivery_id | int |
| customer_id | int |
| order_date | date |
| customer_pref_delivery_date | date |
+-----------------------------+---------+
delivery_id is the column of unique values of this table.
The table holds information about food delivery to customers that make orders at some date and specify a preferred delivery date (on the same order date or after it).
각 customer의 최초 주문 order date와 pref date가 일치하는 지를 묻는 문제 잠깐 곰곰히 생각하다 다음과 같이 일단 작성했다.
select round(if(order_date = customer_pref_delivery_date, 1, 0)/count(*)*100, 2) as immediate_percentage
from delivery
where delivery_id in (select min(delivery_id)
from delivery
group by customer_id)
이렇게 하니 왜 0이 계속 나오지 싶었는데
if구문에서 출력한 1을 합해주지 않았으니 당연히 뭐가 나올리가..;
select round(sum(if(order_date = customer_pref_delivery_date, 1, 0)/count(*)*100, 2) as immediate_percentage
from delivery
where delivery_id in (select min(delivery_id)
from delivery
group by customer_id)
그래서 코드를 이렇게 작성해주었더니 요구하는 답 50이 아닌 75가 나왔다.
근데 사실 이렇게 해서 오답이라고 나온 뒤 왜 50이 나오는지 계속 이해가 안 갔는데
If the customer's preferred delivery date is the same as the order date, then the order is called immediate; otherwise, it is called scheduled.
The first order of a customer is the order with the earliest order date that the customer made. It is guaranteed that a customer has precisely one first order.
Write a solution to find the percentage of immediate orders in the first orders of all customers, rounded to 2 decimal places.
The result format is in the following example.
문제의 설명을 다시 봐보니 order_id의 순번과 earliest order 여부는 상관이 없는 거였음.
애초에 문제를 잘 읽었으면 잘 풀었을 지도...?
일단 킵해놓고 내일 다시 풀기로 했다. 하하
문제를 꼼꼼하게 잘 읽자
TMI
-프로젝트 발표 준비한다고 삘 받아서 새벽 3시 반 넘어서 잤더니 프로젝트 끝나고서 죽을맛. 그래도 정말 이번에도 성공적이었고, 팀원들간 케미가 너무 좋았다.
내일 회식이 기대된다.
그리고 프로젝트가 끝났으니...피곤해도 밀린 이삿짐 정리를 해야한다...ㅎ
-다면평가를 하면서 느꼈지만, 스파르타 코딩클럽 이름에 걸맞게 빡시게 두달을 구른 결과, 그 전의 나는 상상도 못할 만큼 단기간에 성장한 것 같다. 코딩을 단기간에 그럭저럭 많이 공부했고, 팀플을 주구장창하면서 사람들과 친해졌고, 하루에 14시간 이상씩 앉아 있는 나 자신을 발견하는 되게 신기한 경험을 한달 넘게 하는 중.
내배캠이 이래저래 너무 좋은 경험이 되어가고 있고 이대로 마무리까지 잘 갔으면 좋겠다.
'TIL 통합' 카테고리의 다른 글
1/23 TIL (0) | 2024.01.23 |
---|---|
1/22 TIL 날짜 활용, date_sub, where in 심화 (0) | 2024.01.22 |
B07 팀 KPT (0) | 2024.01.18 |
1/17 TIL 프로젝트 발표 D-1 (0) | 2024.01.17 |
1/16 프로젝트 ing 윈도우함수 주의 (0) | 2024.01.16 |