Как выбрать столбец из подзапроса в sql?

#mysql #sql #mariadb #rdbms

Вопрос:

Я довольно новичок в sql. у меня есть этот столик.введите описание изображения здесь

1-й я хочу выбрать, сколько студентов на каждом курсе;

 SELECT COURSE_ID,COUNT(COURSE_ID) AS C FROM STUDENT GROUP BY COURSE_ID
 

2-й теперь я хочу выбрать MAX(C), который является наивысшим значением в столбце count из подзапроса.

SO

 SELECT MAX(C) FROM (  SELECT COURSE_ID,COUNT(COURSE_ID) AS C FROM STUDENT GROUP BY COURSE_ID   );
 

выход должен быть 3

ЭТО ПРАВИЛЬНЫЙ ПУТЬ? Я ИСПОЛЬЗУЮ MARIADB.

Комментарии:

1. Звучит разумно, дает ли это те результаты, которые вы ожидаете?

2. @АрСеН Нет, это не работает.

3. когда подзапрос используется в качестве производной таблицы (например, с помощью FROM или JOIN), вам нужно присвоить ему псевдоним, например FROM (SELECT foo FROM bar) AS foo_bar;

4. всегда важно сказать, как что-то не работает

5. @ysth спасибо , после указания псевдонима я получил результат.

Ответ №1:

Вы могли бы полностью избежать подзапроса, используя ORDER BY и LIMIT :

 SELECT COUNT(*) AS C
FROM STUDENT
GROUP BY COURSE_ID
ORDER BY C DESC
LIMIT 1;
 

Комментарии:

1. «ПРЕДЕЛ 1» показывает только первую строку после сортировки в порядке убывания?

2. это даст вам максимальное количество очков, так как оно первое в этом порядке