Recent Posts
Recent Comments
Link
«   2025/01   »
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
more
Archives
Today
Total
관리 메뉴

개발자공부일기

문제 풀어보기 본문

SQL문제 풀기

문제 풀어보기

JavaCPP 2024. 12. 6. 19:38

 

문제 설명

당신은 도서관의 대여 기록을 관리하는 시스템을 운영하고 있습니다. 대여 기록이 저장된 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