У меня есть три таблицы:3 таблицы SQL запрос
niveis(id, descricao)
formacoes(id, id_nivel, nome)
formacoes_professores(id, id_professor, id_formacao)
Я хотел бы выполнить запрос, который возвращает уровень образования (niveis) с числом профессоров, который имеет его.
Я бегу этот запрос:
SELECT n.descricao, count(f.id_nivel)
FROM niveis_de_formacao n
LEFT OUTER JOIN formacoes f
ON (n.id = f.id_nivel)
GROUP BY n.descricao
И я получаю этот результат:
descricao count
Mestrado 0
Graduação 2
Doutorado 0
Especialização 0
Похоже, что я пытаюсь сделать. Но в этом вопросе я просто подсчитываю количество курсов, которые имеют уровень образования. Что я могу сделать, чтобы запросить таблицу formacoes_professores
и подсчитать, сколько профессоров имеет уровень образования.
Например, если три профессора имеют один и тот же курс (позволяет предположить, что степень магистра), запрос должен возвращать:
Mestrado 3
Но в запросе я бегу, вместо трех, Я получу Mestrado 1
, потому что это тот же курс.
Спасибо.
Попробуйте изменить свой вопрос и включить данные образца. Ваш запрос выглядит правильно. Если значение для «Mestrado» равно 0, данные не будут содержать ничего на этом уровне. –
Хорошо, но я подсчитываю количество курсов на уровне образования. То, что мне нужно сделать, - подсчитать количество «профессоров» на уровне образования. Например, если три профессора имеют один и тот же курс, запрос должен возвращать три на этом уровне, но в запросе, который я запускаю, он вернется. 1 – ahmm95