Планирование запроса

Отчётность в SQL

Tyler Pernes

Learning & Development Consultant

Цель главы

Отчётность в SQL

Вопросы для анализа

  • Из каких таблиц нужно извлекать данные?
  • Как объединить таблицы?
  • Какие поля нужно создать?
  • Какие фильтры необходимо применить?
  • Нужна ли сортировка или ограничение записей?
Отчётность в SQL

Сценарий

Gold Medals by Demographic Group
(Western European Countries Only)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
| Winter   | Female Age 13-25   | 4     |
| Summer   | Female Age 26+     | 2     |
+----------+--------------------+-------+
Отчётность в SQL

1 - Из каких таблиц нужно извлекать данные?

Отчётность в SQL

2 - Как объединить таблицы?

Отчётность в SQL

2 - Как объединить таблицы?

Отчётность в SQL

2 - Как объединить таблицы?

Отчётность в SQL

2 - Как объединить таблицы?

Отчётность в SQL

3 - Какие поля нужно создать?

+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
+----------+--------------------+-------+
  • season - static string
  • demographic_group - conditional
  • golds - SUM()
Отчётность в SQL

4 - Какие фильтры необходимо применить?

Gold Medals by Demographic Group
(Western European Countries Only)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
+----------+--------------------+-------+
  • WHERE или HAVING?
  • Фильтр по измерению = WHERE
Отчётность в SQL

5 - Нужна ли сортировка или ограничение записей?

Gold Medals by Demographic Group
(Western European Countries Only)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
+----------+--------------------+-------+
  • LIMIT не нужен
  • Сортировка по golds в порядке убывания
Отчётность в SQL

Давайте потренируемся!

Отчётность в SQL

Preparing Video For Download...