2014-02-05 3 views
1

Я пытаюсь получить средний балл, самый голосуемый ответ, для каждого вопроса StackOverflow, который не имеет принятого ответа.Среднее значение max - SQL

Используя следующий запрос:

SELECT AVG(MaxScore) 
FROM 
    (SELECT MAX(a.Score) as MaxScore 
    FROM Posts a 
    JOIN Posts q ON q.Id = a.ParentID 
    WHERE q.PostTypeId = 1 AND q.AcceptedAnswerId IS NULL 
    GROUP BY q.Id); 

дает только мне: "Неправильный синтаксис около ';'"

Любые идеи, почему? Спасибо!

+0

Я думаю, что вы используете «знак в конце этого запроса». Вы удалили этот знак, он будет работать. –

+0

Это же ошибка? после того, как вы обновите свой вопрос? –

+1

К сожалению, нет, это была опечатка, созданная здесь при форматировании вопроса (теперь он удален). Спасибо, в любом случае! – karinsofiapaulina

ответ

4
SELECT AVG(MaxScore) 
FROM 
    (SELECT MAX(a.Score) as MaxScore 
    FROM Posts a 
    JOIN Posts q ON q.Id = a.ParentID 
    WHERE q.PostTypeId = 1 AND q.AcceptedAnswerId IS NULL 
    GROUP BY q.Id) AS sub; 

Имя для подзапроса, как это может потребоваться, в зависимости от системы баз данных, даже если вы не используете его.

Смежные вопросы