Помощь в написании некоторых SQL-запросов
Я просто был немного сбит с толку следующими вопросами SQL. Я не уверен, следует ли мне использовать какие-либо соединения или просто использовать операторы select, count или avg. Я придумал свой собственный вопрос, чтобы помочь мне попытаться понять, как лучше писать SQL-операторы.
Рассмотрим две таблицы:
Чемпионы с колонками год, страна, имя, роль
Перечисление всех игроков и менеджеров в команде-победителе чемпионата мира. Вы можете предположить, что любой человек с одинаковым именем для одной и той же страны в разные годы является одним и тем же человеком.
Цели с колонками год, страна, название, NUM_GOALS
Перечисление всех забитых мячей из любой команды (то есть не только Чемпионов). Не забитые голы не включены.
Так, например, записи могут выглядеть следующим образом (конечно, есть еще много строк)
Чемпионы (~500 строк)
YEAR COUNTRY NAME ROLE 2018 France Didier Deschamps Manager 2018 France Hugo Lloris Goalkeeper 2018 France Paul Pogba Midfielder 2014 Germany Joachim Loew Manager 2014 Germany Mesut Ozil Midfielder 2014 Germany Miroslav Klose Forward 2002 Brazil Da Silva Midfielder 1994 Brazil Da Silva Midfielder 1998 France Didier Deschamps Midfielder
Цели (~1700 строк)
YEAR COUNTRY NAME NUM_GOALS 2018 England Harry Kane 6 2018 France Antoine Griezmann 4 2014 Argentina Lionel Messi 4 2014 Brazil Fred 1 2010 Germany Thomas Muller 5 2010 Japan Shinji Okazaki 1 1992 England Gary Linekar 6
Вопросы 1. напишите запрос, чтобы показать, сколько людей выиграли как игрок и менеджер? (например, Дидье Дешам)
Q2. напишите запрос, показывающий, сколько раз каждая страна выигрывала чемпионат мира для стран, выигравших чемпионат мира по крайней мере дважды.
Q3. напишите запрос, показывающий всех игроков, выигравших чемпионат мира, которые никогда не забивали гол.
Q4. напишите запрос, чтобы определить победителя Золотой бутсы (самого высокого бомбардира) на каждом чемпионате мира.
Я попытался ответить на первый вопрос. Я думаю, что это правильно. Я был бы признателен, если бы кто-нибудь помог мне с остальным. Я был бы вам очень признателен.
Что я уже пробовал:
Для вопроса 1 я придумал вот что:
SELECT COUNT(*) AS CHAMPIONS_ROLE FROM CHAMPIONS WHERE ROLE = 'Manager'AND 'Midfielder';
[no name]
Для вопроса 3 я придумал следующее, хотя и не уверен в том, что часть просто игроков-победителей чемпионата мира. Я могу получить всех игроков, которые не забили, но игроки, выигравшие чемпионат мира, немного беспокоят меня.
3. напишите запрос, показывающий всех игроков-победителей чемпионата мира, которые никогда не забивали голов.
ВЫБРАННОЕ ИМЯ
ОТ ГОЛОВ
ГДЕ NUM_GOALS = 0;