Получение студенческого кода, который провалил более 45% своих тестов - PullRequest
0 голосов
/ 30 октября 2018

PostgreSQL
Итак, я хочу вернуть весь уникальный код студента, который провалил более 45% своих тестов.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Я бы просто написал это как:

SELECT e.code
FROM exams e
GROUP BY e.code
HAVING AVG( (e.grade < 75)::numeric ) > 0.45;
0 голосов
/ 30 октября 2018

Вы можете использовать это:

Предположим, как в ваших данных - Grade (75 or above is passing) => grade < 75 is failed

SELECT code
FROM exams
GROUP BY code
HAVING SUM(CASE WHEN grade < 75 THEN 1 ELSE 0 END) :: FLOAT / COUNT(grade) > 0.45;

Это Sqlfiddle

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