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
- 스마트팜코리아
- join
- solvesql
- 주기적 실행
- cron과 crontab 차이
- 리눅스 crontab 사용법
- 농촌진흥청
- 생육
- 인터랙티브 차트
- cron 스케줄 설정
- DTW
- Python
- ML
- 데이터분석
- 시계열 시각화
- streamlit
- 공유
- 농림수산식품교육문화정보원
- 유사도
- 자동화
- 웹앱
- Programmers
- 농정원
- SQL
- 데이터
- 리눅스 자동화 스크립트
- group by
- 스마트팜
- Algorithm
- 대시보드
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] WITH문으로 임시 테이블 처럼 사용하기 (0) | 2025.05.19 |
---|---|
[SQL] 작품이 없는 작가 찾기 (0) | 2022.11.30 |
[SQL] 일별 블로그 방문자 수 집계 (0) | 2022.11.29 |
[SQL] 버뮤다 삼각지대에 들어가버린 택배 (0) | 2022.11.28 |
[SQL] 쇼핑몰의 일일 매출액과 ARPPU (0) | 2022.11.24 |
Comments