У меня есть две таблицы student и grade.
Они связаны отношением PK FK от Student (count) к Grades (marksID). Мне нужно выбрать процент учеников, набравших более 70 процентов баллов, в зависимости от школы.
В каждом городе есть свой совет.
Запрос выглядит следующим образом:

select g3.board,(count(g2.percentag)/ count(board))*100
from  loadbise.grade as g2, loadbise.student as g3
where g2.marksID=g3.countt
and percentag > 70
group by g3.board;

Я знаю, что значение для count(ge.percentag) и count(board) одинаково.
Я застрял на этом пункте count(board).
Я хочу, чтобы в count(board) было общее количество учеников в каждой группе.
Что я упускаю???
Схема такова...
введите описание изображения здесь

zohaibkhan

Ответов: 1

Ответы (1)

Проверьте этот SQL-запрос. Для каждой доски я подсчитал количество студентов с процентом > 70 и общее количество студентов.

SELECT T.board,
       (SELECT COUNT(DISTINCT G.countt) FROM loadbise.Grades AS G
            JOIN loadbise.Student AS S ON S.countt = G.countt
        WHERE G.percentage > 70
                  AND S.board = T.board)
        /
       (SELECT COUNT(S.countt) FROM loadbise.Student AS S
        WHERE S.board = T.board) * 100
FROM
    (SELECT DISTINCT board
    FROM Student AS S) AS T

2022 WebDevInsider