개발자공부일기
문제 풀어보기 본문
문제 설명
당신은 도서관의 대여 기록을 관리하는 시스템을 운영하고 있습니다. 대여 기록이 저장된 BOOK_RENTALS 테이블에서 연체된 책들에 대한 정보를 분석하려고 합니다.
BOOK_RENTALS 테이블은 아래와 같은 구조로 되어있습니다.
rental_id
|
book_id
|
member_id
|
days_rented
|
due_date
|
return_date
|
1
|
1001
|
201
|
10
|
2024-01-10
|
2024-01-20
|
2
|
1002
|
202
|
5
|
2024-01-05
|
2024-01-04
|
3
|
1003
|
203
|
8
|
2024-01-08
|
2024-01-15
|
4
|
1001
|
204
|
7
|
2024-01-07
|
2024-01-06
|
5
|
1002
|
205
|
12
|
2024-01-12
|
2024-01-15
|
6
|
1003
|
206
|
15
|
2024-01-15
|
2024-01-25
|
각 컬럼에 대한 설명은 다음과 같습니다.
- days_rented: 대여 기간(일수)
- due_date: 반납 예정일
- return_date: 실제 반납일
연체는 return_date가 due_date보다 늦은 경우로 정의됩니다. 참고로, 날짜 비교는 DATEDIFF 함수를 통해서 사용할 수 있습니다. 즉, DATEDIFF(return_date, due_date) 이걸로 며칠 차이인지 알 수 있어요.
문제
각 도서에 대해 연체된 대여 건수를 계산하고 연체 된 도서들만 대상으로 각 책의 평균 연체 일수를 계산하세요.
예시
book_id
|
overdue_count
|
avg_overdue_days
|
1001
|
1
|
10
|
1002
|
1
|
3
|
1003
|
2
|
8
|
정답:
SELECT book_id, COUNT(*) AS overdue_count ,AVG(DATEDIFF(return_date, due_date)) AS avg_overdue_days
FROM BOOK_RENTALS
GROUP BY book_id
HAVING avg_overdue_days>0
ORDER BY book_id
'SQL문제 풀기' 카테고리의 다른 글
SQL 문법 문제(기초) Step10 (0) | 2024.10.25 |
---|---|
SQL 문법 문제(기초) Step9 (0) | 2024.10.24 |
SQL 문법 문제(기초) Step8 (0) | 2024.10.22 |
SQL 문법 문제(기초) Step7 (0) | 2024.10.21 |
SQL 문법 문제(기초) Step6 (0) | 2024.10.18 |