- Dancer - хранит в себе информацию о танцоре, его рост, вес и информацию, связанную с бальными танцами.
- Club - отвечает за информацию о клубах (местоположение, рейтинг, название).
- Couple - привязана к двум танцорам одновременно, хранит информацию о паре, так же достпуна версионность в формате, актуальный ли состав пары.
- Coach - хранит информацию о тренерах, тренера привязаны к клубам, но при этом могут тренеровать пары с других клубов.
- Couple_x_Coach - таблица связка между тренерами и парами, кто кого тренерует, по какой программе.
- Competition - описывает турниры, где они проходят, какая плата за вход.
- Competition_Category - описывает категории, достпуные для пар.
- Registered_Couples - список зарегестрированных пар, относительно категорий.
- Scores - Информация о парах, участвоваших в категориях, их места и кол-во набранных очков по каждому танцу.
- Judging_Panel - судейская панель, список тренеров, судящих определенную категорию.
Рассмотреть модели в хорошем качестве, здесь.
CRUD — акроним, обозначающий четыре базовые функции, используемые при работе с базами данных: создание (англ. create), чтение (read), модификация (update), удаление (delete). Введён Джеймсом Мартином в 1983 году как стандартная классификация функций по манипуляции данными.
На crud запросы можно посмотреть вот здесь.
- Задача: Вывести количество соревнований каждого уровня, среднюю стоимость зрительского билета, средняя стоимость которого меньше 900.
P.s. Use GROUP BY + HAVING
- Задача: Вывести топ-5 номера пар в категории Молодежь С класс Латина, в соревновании 'Весенний бал Терпсихоры', по танцy Самба (S).
P.s. Use ORDER BY
- Задача: Вывести сводную таблицу с названиями соревнований, уровнем соревнований, ценой зрительского билета и средней ценой зрительского билета для этого уровня соревнований.
P.s. Use func(...) OVER(...): PARTITION BY
- Задача: Вывести антитоп судей, по очкам грязного судейства, в формате: Ранг судьи, имя Фамилия, категория, кол-во очков грязного судейства.
P.s. Use func(...) OVER(...): ORDER BY
- Задача: Вывести топ пар, по каждому из танцев по Латине независимо от категории, в которой участвовала пара, в формате: место, номер категории, номер пары, танец.
P.s. Use func(...) OVER(...): PARTITION BY + ORDER BY
- Задача: Для Регины Абрамовой посчитать, как долго она не стояла в паре(в днях), начиная с '2020-11-02' по '2022-12-30', построить топ перерывов по длительности.
P.s. Use func(...) OVER(...): все 3 типа функций