Посчитать конкурс на каждую специальность SQL
Есть две таблицы - абитуриенты (список всех абитуриентов и список специальностей, куда они подали документы) и таблица специальности (названия специальностей и кол-во мест на каждую). Нужно посчитать конкурс на каждую специальность (отношение числа поданных заявлений к числу мест). И упорядочить специальности в порядке убывания конкурса. Единственное до чего я дошел - посчитал кол-во поданных заявлений на каждую специальность (думаю, что правильно).
SELECT Специальность, COUNT(Специальность) AS qty FROM Абитуриенты GROUP BY Специальность
Ответы (1 шт):
Видимо что-то вроде такого
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
сама таблица абитуриентов в целом тут не нужна. достаточно таблицы специальностей и таблицы связи многие ко многим, где указаны, кто и куда подал заявления.