Посчитать конкурс на каждую специальность SQL

Есть две таблицы - абитуриенты (список всех абитуриентов и список специальностей, куда они подали документы) и таблица специальности (названия специальностей и кол-во мест на каждую). Нужно посчитать конкурс на каждую специальность (отношение числа поданных заявлений к числу мест). И упорядочить специальности в порядке убывания конкурса. Единственное до чего я дошел - посчитал кол-во поданных заявлений на каждую специальность (думаю, что правильно).

SELECT Специальность, COUNT(Специальность) AS qty FROM Абитуриенты GROUP BY Специальность


Ответы (1 шт):

Автор решения: teran

Видимо что-то вроде такого

SELECT s.id, s.title
     , count(app_specs.app_id)
     , count(app_specs.app_id)/s.pcount AS x
FROM specs
LEFT JOIN app_specs ON (app_specs.spec_id = s.id)
GROUP BY s.id, s.title
ORDER BY x DESC

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

→ Ссылка