ПочатиПочніть безкоштовно

Об'єднання CTE

Тепер, коли ви створили дві підзапити для визначення суперників домашньої та виїзної команд, час упорядкувати ваш запит, оформивши підзапити home та away як Common Table Expressions (CTE). Ви помітите, що в основному запиті є фраза SELECT DISTINCT. Якщо не залишити лише DISTINCT матчі, ви можете отримати дублікати записів для кожної зіграної гри.

Продовжуйте розгортати запит, щоб отримати всі матчі Manchester United у сезоні 2014/2015.

Ця вправа є частиною курсу

Маніпулювання даними в SQL

Переглянути курс

Інструкції до вправи

  • Оголосіть CTE home та away перед основним запитом.
  • Зʼєднайте ваші CTE з таблицею match за допомогою LEFT JOIN.
  • Виберіть потрібні дані з CTE в основний запит.
  • У головному запиті виберіть дату з match, назви команд із CTE та голи господарів/гостей з match.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- Set up the home team CTE
___ ___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Win'
		   WHEN m.home_goal < m.away_goal THEN 'MU Loss' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.hometeam_id = t.team_api_id),
-- Set up the away team CTE
___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Loss'
		   WHEN m.home_goal < m.away_goal THEN 'MU Win' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.awayteam_id = t.team_api_id)
-- Select the date, team names and goals
SELECT DISTINCT
    ___.___,
    ___.___ AS home_team_name,
    ___.___ AS away_team_name,
    ___.___,
    m.away_goal
-- Join the CTEs onto the match table
FROM match AS m
___ JOIN ___ ON m.id = ___
___ JOIN ___ ON m.id = ___
WHERE m.season = '2014/2015'
      AND (home.team_long_name = 'Manchester United' 
           OR away.team_long_name = 'Manchester United');
Редагувати та запускати код