У меня есть несколько смен, которые волонтеры могут выбрать как минимум из 6 смен. Я хочу знать, сколько добровольцев выбрали каждую смену. Пока здесь все просто, но сложнее, если я просто хочу учесть в COUNT только добровольцев, которые выбрали только 6 смен.
Это то, что я делаю, но это совсем не работает:
SELECT COUNT(volunteer_id), shift_id
FROM rota
WHERE volunteer_id IN (SELECT volunteer_id FROM rota HAVING
COUNT(volunteer_id) = 6)
GROUP BY shift_id;
Edit:
Это пример таблицы "рота". В реальной жизни есть 100 добровольцев_ид и 15 разных shift_id
id volunteer_id shift_id
1 1 3
2 1 2
3 1 1
4 2 1
5 2 2
6 2 7
7 2 12
8 2 5
9 2 6
10 3 2
11 3 3
n
Ожидаемые результаты будут примерно такими. Столбец волонтер_ид будет учитывать только тех добровольцев, которые выбрали 6 смен в приведенной выше таблице:
shift_id COUNT(volunteer_id)
1 5
2 32
3 12
4 9
n