Выберите наиболее популярные и активные значения из запроса PostgresQL - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть структура базы данных, которая выглядит следующим образом:

enter image description here

Запрос, который я хочу создать, это один, который выбирает самый популярный активный классы. Активный определяется наличием конечной даты в будущем (все еще активным), а самый популярный определяется наличием большинства членов класса.

Пока у меня есть этот запрос:

CREATE VIEW popularclasses AS
SELECT COUNT(studentid) AS amount
FROM classes 
JOIN classmembers ON classes.classid = classmembers.classid
WHERE ends > NOW();

Я пытаюсь чтобы создать представление, в котором я считаю все идентификаторы учеников и присоединяюсь к другой таблице, затем я пытаюсь сделать предложение WHERE, чтобы отметить только активные.

Моя проблема в том, что я хочу получить количество учеников в каждом классе, а затем сделать что-то вроде

... sort desc LIMIT 10;

1 Ответ

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

Здесь вам нужна группа по операторам.

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

CREATE VIEW popularclasses AS
SELECT
  classes.classid,
  COUNT(*) AS amount
FROM
  classes
JOIN classmembers ON classes.classid = classmembers.classid
GROUP BY
  classes.classid
ORDER BY amount DESC LIMIT 10;

(я не пробовал этот код)

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