Прежде чем писать запрос, подумайте о том, что вы хотите выбрать и показать. Вы говорите нам, что хотите подсчитать номера в крыле Воробья. Итак, почему вы выбираете bedroom_id в своем запросе? Какой номер спальни вы бы указали на все эти спальни в крыле?
Затем вы выбираете из спален, где идентификатор крыла - это тот, о котором идет речь. Но в подзапросе вы не выбираете идентификатор крыла, но имя крыла (это, конечно, «SPARROW»). Полагаю, это просто опечатка, верно?
Затем вы группируете имя wing_name. Таким образом, вы получаете по одной записи за каждое имя крыла. Но вы выбираете только записи для одного крыла (SPARROW), поэтому предложение GROUP BY ничего не помогает. Кроме того, вы используете его в запросе на спальню, но в таблице спален нет столбца wing_name, поэтому вы не можете группировать его так или иначе.
Вот ваш запрос очищены:
select count(*)
from bedrooms
where wing_id =
(
select wing_id
from wing
where wing_name = 'SPARROW'
);
Вы также можете выбрать мин (bedroom_id), не более (bedroom_id), буквальный 'ВОРОБЕЙ' и т.д.
Если вы хотите, чтобы выбрать столбцы из таблицы крыла тоже, а затем выбрать из крыла и использовать подзапрос на спален:
select
wing_name,
wing_size,
(select count(*) from bedrooms b where b.wing_id = w.wing_id) as rooms
from wing w
where wing_name = 'SPARROW';
Я удалил три тега базы данных, заменив их на более общий «sql». Пожалуйста, пометьте вопрос в базе данных, которую вы фактически используете. –