Contents
내가 작성한 쿼리

도서관에서 현재 대여 중(반납되지 않음)이고 사본이 없는 모든 책을 찾기 위한 해결책을 작성하세요. * NULL 반환 날짜가 있는 대출 기록이 있는 경우 현재 대출된 것으로 간주됩니다. 현재 대출자가 주문한 결과 표를 내림차순으로, 그 다음에는 오름차순으로 책 제목으로 반환하세요. >> 다 빌려가서 없는 책 목록 반환
내가 작성한 쿼리
Oracle
SELECT lb.book_id, lb.title, lb.author, lb.genre, lb.publication_year, COUNT(br.book_id) AS current_borrowers FROM library_books lb JOIN borrowing_records br ON lb.book_id = br.book_id WHERE br.return_date IS NULL GROUP BY lb.book_id, lb.title, lb.author, lb.genre, lb.publication_year, lb.total_copies HAVING COUNT(br.book_id) = lb.total_copies ORDER BY current_borrowers DESC, lb.title ASC;
MySQL
SELECT lb.book_id, lb.title, lb.author, lb.genre, lb.publication_year, COUNT(br.book_id) AS current_borrowers FROM library_books lb JOIN borrowing_records br ON lb.book_id = br.book_id WHERE br.return_date IS NULL GROUP BY lb.book_id, lb.total_copies HAVING COUNT(br.book_id) = lb.total_copies ORDER BY current_borrowers DESC, lb.title ASC;
차이점
Oracle
은 SELECT에 포함된 모든 컬럼을GROUP BY
에 명시해야 함
Share article