Я только начинаю учить себя SQL (я занимаюсь этим уже неделю и чувствую, что у меня все хорошо) -
У меня есть тренировочная база данных, которую я 'я просто бездельничаю - есть две таблицы (одна с названием "прогресс" и одна с именем "пользователи").
ПрогрессЭта таблица включает в себя внешний ключ от «пользователей», идентифицирующий студентов, обучающихся на 5 различных курсах кодирования (CPP, SQL, HTML, Javascript и Java), и указывает, зарегистрирован ли студент, начал курс или закончил курс.
пользователейЭта таблица содержит первичный ключ для идентификации студентов, а также их демографическую информацию (адреса, адрес электронной почты для университета и т. Д.).
Я хочу иметь возможность подсчитать количество студентов, зачисленных в 5курсы для каждого университета. Я смог сделать это для одного университета за раз, но я хочу что-то, что сделает это для всех 617 различных университетов одновременно.
WITH placeholder AS (
SELECT *
FROM users
JOIN progress
ON users.user_id = progress.user_id
GROUP BY email_domain
ORDER BY email_domain
)
select email_domain,
Sum(CASE WHEN learn_cpp = "completed" OR learn_cpp = "started" THEN 1 ELSE 0 END) AS 'CPP Enrollment',
Sum(CASE WHEN learn_sql = "completed" OR learn_SQL = "started" THEN 1 ELSE 0 END) AS 'SQL Enrollment',
Sum(CASE WHEN learn_html = "completed" OR learn_html = "started" THEN 1 ELSE 0 END) AS 'HTML Enrollment',
Sum(CASE WHEN learn_javascript = "completed" OR learn_javascript = "started" THEN 1 Else 0 END) AS 'Javascript Enrollment',
Sum(CASE WHEN learn_java = "completed" OR learn_java = "started" THEN 1 ELSE 0 END) AS 'Java Enrollment'
FROM placeholder;
Это возвращает правильный счет зачисления во все университеты, но имеет толькопервый университетский почтовый домен (показан ниже).
aa.edu 238 317 183 306 119
Я хочу, чтобы количество зачислений по каждому курсу по университетам (в каждом столбце должно быть 167 строк с количеством зачислений по каждому курсу).