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

Наведіть лад за допомогою CTE

У розділі 2 ви створили список країн і кількість матчів у кожній країні з понад 10 загальними голами. У тій вправі запит використовував підзапит у блоці FROM, щоб відфільтрувати матчі до того, як підраховувати їх в основному запиті. Нижче наведено створений вами запит:

SELECT
  c.name AS country,
  COUNT(sub.id) AS matches
FROM country AS c
INNER JOIN (
  SELECT country_id, id 
  FROM match
  WHERE (home_goal + away_goal) >= 10) AS sub
ON c.id = sub.country_id
GROUP BY country;

Ви можете перетворити один (або кілька) підзапитів на вирази загальних табличних виразів (CTE), оголосивши їх перед основним запитом. Це чудовий спосіб впорядкувати інформацію та розмістити її в логічному порядку.

У цій вправі перепишімо подібний запит із використанням CTE.

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

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

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

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

  • Доповніть синтаксис, щоб оголосити свій CTE.
  • У CTE виберіть country_id та id матчу з таблиці match.
  • Виконайте LEFT JOIN CTE з таблицею league за country_id.

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

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

-- Set up your CTE
___ match_list ___ (
    SELECT 
  		country_id, 
  		___
    FROM match
    WHERE (home_goal + away_goal) >= 10)
-- Select league name and count of matches from the CTE
SELECT
    l.name AS league,
    COUNT(match_list.id) AS matches
FROM league AS l
-- Join the CTE to the league table using country_id
LEFT JOIN ___ ON l.id = ___
GROUP BY l.name;
Редагувати та запускати код