Написать SQL-запрос: выбрать имена трёх самых читаемых авторов на данный момент (у которых больше всего книг сейчас на руках).

Предположим, у нас есть таблицы:

Короткий ответ

Что ответить на собеседовании

Предположим, у нас есть таблицы:

Подробный разбор

Ответ с пояснениями

Предположим, у нас есть таблицы:

  • authors (id, name)
  • books (id, author_id)
  • loans (id, book_id, loan_date, return_date)

Чтобы выбрать имена трёх авторов, у которых сейчас на руках больше всего книг (т.е. книги, которые взяты и ещё не возвращены), можно написать запрос:

SELECT a.name, COUNT(*) AS books_on_loan
FROM authors a
JOIN books b ON a.id = b.author_id
JOIN loans l ON b.id = l.book_id
WHERE l.return_date IS NULL
GROUP BY a.id, a.name
ORDER BY books_on_loan DESC
LIMIT 3;

Здесь мы считаем количество книг каждого автора, которые сейчас не возвращены (return_date IS NULL), сортируем по убыванию и берём топ-3.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее