У меня есть две таблицы book(isbn, title, authorID, genre, pubYear, publisher,
rrPrice, avgRating)
и orderDetails(oNo, bookISBN, quantity)
.Есть несколько заказов с их собственными OrderDetails, поэтому каждая книга может иметь несколько OrderDetails, связанных с их собственным количеством.Мне нужно найти книги, которые имеют наибольшее количество заказов.Мне удалось получить правильный вывод, но мое решение довольно грязное, включающее использование одного и того же подзапроса дважды, и мне было интересно, кто-нибудь может предложить более чистую реализацию?Ответ, который я придумал, ниже:
SELECT title, pubYear, orderSum
FROM
(
SELECT title, pubYear,orderSum
FROM
(
SELECT title, pubYear,SUM(quantity) AS orderSum
FROM book INNER JOIN orderDetails ON bookISBN = isbn
GROUP BY title, pubYear) T
GROUP BY title, pubYear) S
WHERE S.orderSum = (select max(S.orderSum) from (SELECT title,
pubYear,orderSum
FROM
(
SELECT title, pubYear,SUM(quantity) AS orderSum
FROM book INNER JOIN orderDetails ON bookISBN = isbn
GROUP BY title, pubYear) T
GROUP BY title, pubYear) S);