SQL інтерв'ю часто містять задачу зі створення розкладу матчів, яка перевіряє вашу здатність генерувати комбінації та працювати зі структурованими даними. Сьогодні ми зосередимося на створенні розкладу для п’яти команд IPL, де кожна команда грає з кожною іншою командою рівно один раз.
Розуміння проблеми
Дано список з 5 команд, ми повинні створити розклад, де кожна команда грає з кожною іншою командою рівно один раз. Це фактично комбінаторна задача, в якій потрібно згенерувати всі унікальні пари команд.
Приклад таблиці : Команди
Генерація розкладу матчів
Щоб створити розклад, де кожна команда грає з кожною іншою командою рівно один раз, потрібно згенерувати всі унікальні комбінації двох команд.
SQL запит
Ось як це можна зробити:
Пояснення до запиту
- Самопідключення (Self-Join): Таблиця
Teams
з’єднується сама з собою, щоб зв’язати кожну команду з кожною іншою. - Умова (
T1.TeamID < T2.TeamID
): Забезпечує, щоб кожна пара була унікальною та не дозволяла дублювати матчі (наприклад, A проти B і B проти A).
Генерація розкладу матчів — це основна задача SQL, яка демонструє ваше розуміння самопідключень (self-joins), фільтрації та комбінаторної логіки.
Слідкуйте за наступними частинами цієї серії з 30 запитів для інтерв'ю!
Перекладено з: SQL Interview Questions 12/30: Generating Match Fixtures