반응형
250x250
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 |
Tags
- 코드잇
- 코딩독학
- 데이터분석
- 선형회귀
- 파이썬
- HTML
- matplotlib
- for반복문
- 유학생
- 코딩공부
- 로지스틱회귀
- 행렬
- 경사하강법
- 코딩
- 나혼자코딩
- CSS
- Seaborn
- numpy
- sql연습문제
- 머신러닝
- 오늘도코드잇
- 다항회귀
- SQL
- 윈도우함수
- 판다스
- 결정트리
- 코드잇TIL
- 런던
- 코드잇 TIL
- 영국석사
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(SQL) DATE_TRUNC DATE_PART 개념 및 연습문제 본문
728x90
반응형
1) DATE_TRUNC
- 날짜, 시간 열의 특정 부분으로 날짜를 자를 수 있습니다.
RESULT | INPUT |
2024-04-01 12:15:01 | DATE_TRUNC('second', 2024-04-01 12:15:01) |
2024-04-01 00:00:00 | DATE_TRUNC('day', 2024-04-01 12:15:01) |
2024-04-01 00:00:00 | DATE_TRUNC('month', 2024-04-01 12:15:01) |
2024-01-01 00:00:00 | DATE_TRUNC('year', 2024-04-01 12:15:01) |
2) DATE_PART
- 하루 중 특정 부분만 빼내고 싶은 경우
- dow : day of week, 0(일요일)~6(토요일) 사이의 값을 반환
RESULT | INPUT |
1 | DATE_PART('second', 2024-04-01 12:15:01) |
1 | DATE_PART('day', 2024-04-01 12:15:01) |
4 | DATE_PART('month', 2024-04-01 12:15:01) |
2024 | DATE_PART('year', 2024-04-01 12:15:01) |
- 가장 많은 용지 묶음이 판매된 요일 구하기
SELECT DATE_PART('dow', occurred_at) AS day_of_week,
SUM(total) AS total_qty
FROM orders
GROUP BY 1
ORDER BY 2 DESC
=> 일요일(0)에 가장 많은 용지가 주문되었고, 목요일(4)에 가장 적은 용지가 주문된 걸 알 수 있습니다.
3) 연습문제
- 각 'year'의 모든 주문에 대한 총 금액 기준으로 매출을 가장 큰 것에서 가장 적은 것 순으로 구합니다. 연간 총 판매액의 추세가 보입니까?
SELECT DATE_PART('year', occurred_at) ord_year,
SUM(total_amt_usd) total_spent
FROM orders
GROUP BY 1
ORDER BY 2 DESC;
=> 연간 총계를 보면 2013년과 2017년의 총계가 다른 모든 연도보다 훨씬 적다는 것을 알 수 있습니다.
월 데이터를 자세히 살펴보면 '2013년'과 '2017년'의 경우 각 연도에 대해 한 달 동안의 판매 건만 있다는 것을 알 수 있습니다(2013년에는 12개, 2017년에는 1개). 2016년이 가장 큰 매출을 기록하면서 연 매출이 증가하고 있습니다. 이 속도로 2017년이 가장 큰 매출을 기록할 것으로 예상할 수 있습니다.
=> 따라서 앞으로 나올 연습문제에 대해서 2013년과 2017년 매출을 제거해야 합니다.
- Parch & Posey의 총 매출이 가장 높은 month는 언제입니까? 12월
SELECT DATE_PART('month', occurred_at) ord_month,
SUM(total_amt_usd) total_spent
FROM orders
#2013, 2017년도 제거
WHERE occurred_at BETWEEN '2014-01-01' AND '2017-01-01'
GROUP BY 1
ORDER BY 2 DESC;
- Parch & Posey가 총 주문량 기준으로 가장 많이 팔린 year는 언제입니까?
SELECT DATE_PART('year', occurred_at) ord_year, SUM(total) total_spent
FROM orders
WHERE occurred_at BETWEEN '2014-01-01' AND '2017-01-01'
GROUP BY 1
ORDER BY 2 DESC;
- Walmart가 달러 기준으로 gloss 에 가장 많이 지출한 year의 month는 언제입니까? 2016년 5월
SELECT DATE_TRUNC('month', o.occurred_at) ord_date,
SUM(o.gloss_amt_usd)
FROM orders o
JOIN accounts a
ON a.id = o.account_id
WHERE a.name = 'Walmart'
GROUP BY 1
ORDER BY 2 DESC
LIMIT 1;
728x90
반응형
'코딩공부 > SQL' 카테고리의 다른 글
(SQL) 서브쿼리 개념, 종류 및 예시 (0) | 2024.05.16 |
---|---|
(SQL) CASE 문 개념 및 연습문제 (0) | 2024.05.13 |
(SQL) HAVING 개념 및 연습문제 (0) | 2024.05.13 |
(SQL) DISTNICT 개념 및 연습문제 (0) | 2024.05.13 |
(SQL) 여러 열 GROUP BY로 정렬하고 ORDER BY로 나열하기 (0) | 2024.05.11 |