Вот две таблицы, над которыми я работаю:
Материалы:
+----+------------+
| id | student_id |
+----+------------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+----+------------+
Group_submissions:
+----+---------------+------------+
| id | submission_id | student_id |
+----+---------------+------------+
| 1 | 1 | 2 |
| 2 | 2 | 1 |
+----+---------------+------------+
Только один студент на самом деле делает заявку и идет в таблицу заявок, в то время как остальные go в таблицу group_submissions (если заявка представляет собой групповую заявку)
Я хочу подсчитать уникальное количество студентов, которые подали заявку как в группе, так и в одиночку
Я хочу, чтобы в итоге было возвращено только число (3 на основе данных из таблиц выше)
Учащийся, который находится в таблице представления, не должен учитываться дважды, если он находится в таблица group_submission и наоборот.
Кроме того, ученики, которые сделали только отдельные заявки (которых нет в таблице group_submissions), также должны учитываться независимо от того, были ли они когда-либо в групповой подаче
Я уже выполняю некоторые другие операции над этими таблицами в запросе, который создаю, поэтому, если вы можете дать мне решение, основанное на две таблицы, которые могли бы помочь.
Вот что я пробовал:
count(distinct case when group_submissions.student_id is not null then group_submissions.student_id end) + count(distinct case when submissions.student_id is not null then submissions.student_id end)
Но это дает мне дубликаты, поэтому, если ученик находится в обеих таблицах, он считается два раза.
Есть идеи?
ПРИМЕЧАНИЕ. Это база данных MySQL.