Как использовать отличное ключевое слово в SQL? - PullRequest
0 голосов
/ 28 февраля 2020

Я попробовал следующий запрос:

select class
from courses
WHERE distinct student
having count(class)>=5 ;

По сути, я пытаюсь получить все классы, которые насчитывают более 5. В то же время я стараюсь не иметь дублирующих учеников. Таким образом, это означает, что студент может соответствовать только одному классу. Но у меня ошибка синтаксиса. Любая помощь будет оценена. Пример ввода: {"заголовки": {"курсы": ["студент", "класс"]}, "строки": {"курсы": [["A", "математика"], ["B", " Engli sh "], [" C "," Math "], [" D "," Biology "], [" E "," Math "], [" F "," Math "], [ "A", "Math"]]}} Пример вывода: {"headers": ["class"], "values": []}

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Я понимаю, что вы хотите, чтобы в классах было не менее 5 учеников, не принадлежащих к другому классу.

Если это так, вы можете использовать агрегацию и not exists:

select class
from courses c
where not exists (
    select 1 from class c1 where c1.class <> c.class and c1.student = c.student
)
group by class
having count(*) > 5
0 голосов
/ 28 февраля 2020

Если вы хотите занятия с пятью или более учениками, вы хотите агрегировать:

select class
from courses
group by class
having count(*) >= 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...