Подзапрос с ошибкой в ​​предложении, что мне не хватает? - PullRequest
1 голос
/ 28 сентября 2011

Почему я получаю эту ошибку?

 SELECT        unitCode
        FROM            Enrolment
        WHERE        count(studentID) >
         (SELECT        AVG(Students) AS avgstudents
        FROM            (SELECT        COUNT(*) AS Students
       FROM            Enrolment AS Enrolment_1
        GROUP BY unitCode) AS a))

Ответы [ 4 ]

1 голос
/ 28 сентября 2011

В предложении where мы не можем использовать агрегатные функции.Вы можете использовать функцию count (studentID) в предложении HAVING.

Проверьте этот пример,

SELECT department, SUM(sales) as "Total sales"
FROM order_details
GROUP BY department
HAVING SUM(sales) > 1000;
1 голос
/ 28 сентября 2011

Похоже, в конце есть лишний парень. Я не знаю много SQL, поэтому я не могу сказать, если что-то не так (или проблема вообще в парене).

0 голосов
/ 28 сентября 2011

Попробуйте это:

select unitCode
from Enrolment
group by unitCode
having count(*) > (select avg(c.c) from (select count(*) as c from Enrolment group by unitCode) c);

С должным уважением к:

TSQL: Невозможно выполнить статистическую функцию AVG для COUNT (*), чтобы найти наиболее загруженные часы дня

0 голосов
/ 28 сентября 2011

Дэвид, проверь это,

select count(*),unicode from Enrolement 
    having count(StudentID) > (select avg(Students) ad avgstudents,unitCode
    from table_Name where Enrolement = "some of ur condtion"
    group by unitCode) 

Нужно изменить свой запрос отформатированного синтаксиса ... соответственно проверь свой бизнес-запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...