#mysql #sql #mysql-workbench
#mysql #sql #mysql-workbench
Вопрос:
У меня есть таблица под названием books, и я должен выбрать book_genre, который заимствован больше всего (times_borrowed):
SELECT book_genre FROM books WHERE times_borrowed = (SELECT MAX(times_borrowed) FROM books);
Теперь я выбираю только наиболее заимствованный жанр, но есть много книг с одинаковыми жанрами, как бы я суммировал «times_borrowed» для каждого жанра, а затем определил наиболее заимствованный жанр? Спасибо за любую помощь или совет.
Комментарии:
1. Добавьте DDL, примерные данные и ожидаемый результат
Ответ №1:
SELECT b.book_genre, SUM(b.times_borrowed) AS TotalBorrowed -- Get the sum of borrowings
FROM books AS b
GROUP BY book_genre -- by book_genre
ORDER BY SUM(b.times_borrowed) DESC -- sort by total desc, so highest first
LIMIT 1; -- take first result
Комментарии:
1. Что, если два жанра одинаково популярны?
2. В SQL Server вы можете
TOP (1) WITH TIES
не быть уверены в MySQL, я думаю, вам нужноrow_number()