I can only assume what they're trying to test, which are attributes of a user and performing counts on them. So they're testing whether or not you know the different joins (or specifically when to use an inner join and when to use a left/right join). It can be something like this
Given the tables, I would left join them to a table that stores all users so that all users have attributes that correspond to a subpopulation. I would create a temp table out of this.
I would then run my sql query based off this temp table so it'll look something like this:
select
subpopulation_A
, count(distinct users) as count_of_users_in_subpopulation_A
from temp_table
group by 1
another way of writing it can be:
select
count(case when subpopulation_A notnull then user_id else null end) as count_subpop_A,
count(case when subpopulation_B notnull then user_id else null end) as count_subpop_B,
--etc...for all subpops
from temp_table
I'm assuming you're given a list of dimensional info (e.g., user_id) and their attributes (subpop categories). All you need to do is to create a table using joins (union won't work since they're different attributes) and then count them all.
They seem to be testing on joins and aggregates functions.