не очень ясно что там про "первый отметил 7 из 7, а второй 5 из 7", но вот такой sql-ник даст посты, положительно отмеченные пользователями нужного года рождения, и рядом - их айдишники через запятую (если в birthdate - дата рождения, с только годом рождения проще). Возможно, group_concat внутри требует преобразование инта к строке, я так сходу про sqlite не скажу
select marks.post_id, group_concat(users.user_id)
from users
join marks on users.user_id = marks.user_id
where strftime('%Y', users.birthdate) = '<input_date>'
and marks.mark = 'positive_mark'
group by marks.post_id