-- Вывести всех авторов и кол-во их книг.

Ответ и пояснения приведены в подробном разборе ниже.

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

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

sql SELECT a.authorid, a.authorname, COUNT(b.bookid) AS bookscount FROM authors a JOIN authorbook ab ON a.authorid = ab.authorid JOIN books b ON ab.bookid = b.bookid GROUP BY a.authorid, a.authorname HAVING COUNT(b.bookid) > 10;

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

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

Условие

-- Вывести всех авторов и кол-во их книг. -- Пример:

-- author_name | book_count

-- Игорь | 2 -- Иван | 1

-- Вывести авторов, которые написали более 2-х книг.

Ответ

sql SELECT a.author_id, a.author_name, COUNT(b.book_id) AS books_count FROM authors a JOIN author_book ab ON a.author_id = ab.author_id JOIN books b ON ab.book_id = b.book_id GROUP BY a.author_id, a.author_name HAVING COUNT(b.book_id) > 10;


Здесь предполагается, что есть три таблицы:
- authors (author_id, author_name)
- books (book_id, ...)
- author_book (author_id, book_id) — таблица связи многие-ко-многим.

Запрос выбирает авторов, у которых количество связанных книг больше 10.

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

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

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

Подробнее