Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Помогите найти ошибку в sql запросе MySQL


Автор: serai101 17.6.2018, 22:46
Вывести список авторов, у которых более 3 книг имеют среднюю оценку более 5, если оценок у книги нет - средняя оценка = 0. Вывод: ID, Name, countBook


Мой запрос:
Код

SELECT p2.ID, p2.Name, COUNT(r2.ID) AS countBook 
FROM Author p2 INNER JOIN Book r2 ON p2.ID = r2.AuthorID 
GROUP BY p2.ID, p2.Name 
HAVING (SELECT Count(Dif) AS Dt 
FROM (SELECT (AVG(Cast(b.Rate as Float))) AS Dif
FROM Book p LEFT JOIN Rating b ON p.ID = b.BookID WHERE p2.ID=p.AuthorID 
GROUP BY p.ID, p.Name HAVING AVG(Cast(b.Rate as Float))>5)Dt)>3


Препод проверяет запросы на боте, и бот говорит о ошибке((
Никак не могу понять , в чем проблема. Помогите пожалуйста

Автор: Akina 18.6.2018, 13:57
Проблема в том, что Вы придумываете свой собственный синтаксис, который ни при каких условиях не будет понят сервером.

Автор: serai101 18.6.2018, 15:04
Цитата(Akina @ 18.6.2018,  13:57)
Проблема в том, что Вы придумываете свой собственный синтаксис, который ни при каких условиях не будет понят сервером.

19 заданий из 20 бот зачёл. И Синтаксис был точно таким же. Бот не проверяет сам запрос, он проверяет результат запроса и сравнивает его со своим результатом

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)