Ошибка в коде “aggregate function”

178
21 марта 2018, 02:55

Доброго времени суток. Изучаю MySQL, но столкнулся с проблемой, которую никак не могу решить.

Задание вот в чем: необходимо посчитать сколько книг написал каждый из авторов, а затем выровнять полученный результат в алфавитном порядке по фамилиям авторов.

Вот код:

SELECT  surname AS "Surname", Forename AS "Forename", COUNT(book.authorID) AS "Books Written" 
   FROM Author 
   INNER JOIN Book ON Author.authorID = Book.authorID
   GROUP BY surname
   ORDER BY surname;

Имеется две таблицы данных, одна, соответственно "Author", вторая "Book". Author содержит фамилию(surname), имя(forename) и ID автора (authorID). Book содержит ID книги (bookID), ID автора (authorID), название и еще несколько переменных, типа цены и кол-ва страниц.

Ошибка:

ERROR: column "author.forename" must appear in the GROUP BY clause or be used in an aggregate function

READ ALSO
Как правильно составить запрос к MySQL

Как правильно составить запрос к MySQL

Есть две таблицы: base_bill и base_poz В base_bill поля:

231
Изменение значения в поле по кнопке mysql

Изменение значения в поле по кнопке mysql

Есть PHP, где выводится список пользователей с их данными из БД, которые вносятся при регистрацииНа каждую запись повесил поле, где можно изменить...

173
MYSQL: Прошу помощи в оптимизации запроса

MYSQL: Прошу помощи в оптимизации запроса

Привет, прошу помощи в оптимизации запроса, индекса или таблицы в целом

245