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 | 31 |
Tags
- 스마트팜코리아
- Python
- Pivot Table
- minmaxscaling
- Algorithm
- ML
- postgres sql
- solvesql
- psycopg
- join
- group by
- Programmers
- 스마트팜
- 농정원
- 데이터
- 유사도
- 평가지표
- 숫자 짝꿍
- netron
- 농촌진흥청
- 데이터분석
- MAPE
- 딥러닝
- DTW
- rmse
- report lab
- 생육
- 농림수산식품교육문화정보원
- 주식가격
- SQL
Archives
- Today
- Total
Positive-Influence-Data
[SQL] 배송 예정일 예측 성공과 실패 본문
❗ 본 포스팅은 Solvesql의 연습문제를 활용합니다. 다양한 SQL 문제를 풀어보고 싶다면 Solvesql를 방문하세요.
이번문제는 배송 예정일 예측 성공과 실패이다. 문제를 살펴보자.


문제를 해석하면
- 2017년 1월 한달동안 구매 데이터를 추출한다.
- 배송예정 시점이 배송완료 시점보다 같거나 뒤에 있으면 success 아니면 fail
생각을 조금 해야하는 문제이다.
select purchase_date, sum(success) as success, sum(fail) as fail
from (select
strftime('%Y-%m-%d',order_purchase_timestamp , 'localtime') as purchase_date ,
case
when order_delivered_customer_date <= order_estimated_delivery_date then 1
else 0
end as success,
case
when order_delivered_customer_date > order_estimated_delivery_date then 1
else 0
end as fail
from
olist_orders_dataset
where
order_purchase_timestamp >= '2017-01-01'
and order_purchase_timestamp < '2017-02-01') as t1
group by purchase_date;
필자는 case문을 써서 success부분에 만족하면 1 fail부분에 만족하면 1을 부여하였다. 그 외에 것들은 0으로 부여해서 그렇게 데이터를 추출해보면 각 날짜마다 success, fail의 여부를 체크 할 수 있다.
그것들을 날짜별로 전부 합해주면 결과 데이터 예시처럼 출력된다.
group by로 각 날짜를 그룹지어주고 success와 fail을 다 더해주면 각 날짜별로 success와 fail의 갯수를 알 수 있다.
** 이렇게 안풀고 다르게 풀어도 문제가 풀린다. 필자가 어렵게 풀었을 가능성이 있으니 본인의 풀이와 교차검증해도 좋을 듯 하다.
'SQL' 카테고리의 다른 글
[SQL] 작품이 없는 작가 찾기 (0) | 2022.11.30 |
---|---|
[SQL] 일별 블로그 방문자 수 집계 (0) | 2022.11.29 |
[SQL] 버뮤다 삼각지대에 들어가버린 택배 (0) | 2022.11.28 |
[SQL] 쇼핑몰의 일일 매출액과 ARPPU (0) | 2022.11.24 |
[SQL] 멘토링 짝꿍 리스트 (0) | 2022.11.23 |
Comments