Я новичок в SQL и создаю базу данных сайта для проката фильмов. Я должен показать некоторую сводную статистику базы данных, поэтому я планирую показать количество мужчин и женщин, которые отобрали фильмы определенной сертификации для аренды.SQL - количество вхождений слова
Выход я хочу это:
Certificate No. Males No. Females
----------- --------- -----------
U # #
PG # #
12 # #
15 # #
18 # #
Соответствующие таблицы для этого запроса являются:
FILM {FID (PK), Film_Title, Certificate, Date_of_Release}
MEMBER {MID (PK), ..., Gender}
LIST {MID (FK), FID (FK)}
FILM и ЧЛЕН таблица должна быть самопонятны, в то время как LIST является выбор фильмы, которые ЧЛЕН пожелает арендовать. Это как корзина, если хотите. Каждый член имеет только один список, и каждый список может содержать много фильмов. Я пытался придумать запроса, но доступ не позволил бы мне запустить его:
SELECT Gender, COUNT(*) AS Gender_per_Certificate
FROM (SELECT DISTINCT Film_Title, Certificate, Gender
FROM (SELECT *
FROM Film, Member, List
WHERE Film.FID=List.FID
AND Member.MID=List.MID)
WHERE Film_Title IN (SELECT Film_Title
FROM (SELECT *
FROM Film, Member, List
WHERE Film.FID=List.FID
AND Member.MID=List.MID)
WHERE Certificate=[Certificate?]
GROUP BY Certificate))
WHERE (((Member.[Gender])="M")) OR ((("F")<>False))
GROUP BY Gender;
Ошибка
Попытка выполнить запрос, который не включает указанное выражение «FID» как часть совокупной функции
Я не уверен, что означает эта ошибка - может ли кто-нибудь объяснить это? Также, как я могу выполнить запрос правильно?
Я понимаю, что это может быть очень простой запрос, который я слишком усложнил, буду признателен за любую помощь, большое спасибо за ваше время заранее!
Похоже, что вы серьезно усложнили этот запрос. – paqogomez
'mysql'' ms-access' различно обновляют вопрос и тег правильно. –
@paqogomez Я тоже так думаю. возможно, я должен использовать JOIN вместо подзапросов? – ting