Шаг 207. Пересобираем page_gsc_summary после расширения базы

sqlГлава 12. Финальный проект: расширяем базу без готового файла

Что делаем

Пересобираем page_gsc_summary после расширения базы

Зачем SEO-специалисту

Когда база пополняется, витрины нужно пересобрать, иначе отчеты будут смотреть только на старые данные.

Код. Вставьте 1 в 1

DROP TABLE IF EXISTS page_gsc_summary;

CREATE TABLE page_gsc_summary AS
SELECT p.page_id,
       p.url,
       p.page_type,
       p.search_intent,
       SUM(g.impressions) AS impressions,
       SUM(g.clicks) AS clicks,
       ROUND(SUM(g.clicks) * 1.0 / SUM(g.impressions), 4) AS ctr,
       ROUND(AVG(g.avg_position), 2) AS avg_position,
       COUNT(DISTINCT g.query) AS queries_count
FROM pages AS p
JOIN gsc_daily AS g ON g.page_id = p.page_id
GROUP BY p.page_id, p.url, p.page_type, p.search_intent;

Построчный разбор: что делает, для чего и как работает

Строка 1: DROP TABLE IF EXISTS page_gsc_summary; — Удаляет старую учебную таблицу с таким именем, если она уже была создана раньше.
Строка 2: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 3: CREATE TABLE page_gsc_summary AS — Создает новую таблицу из результата SELECT-запроса.
Строка 4: SELECT p.page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 5: p.url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 6: p.page_type, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 7: p.search_intent, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 8: SUM(g.impressions) AS impressions, — Считает сумму числовых значений, например показов или кликов.
Строка 9: SUM(g.clicks) AS clicks, — Считает сумму числовых значений, например показов или кликов.
Строка 10: ROUND(SUM(g.clicks) * 1.0 / SUM(g.impressions), 4) AS ctr, — Считает сумму числовых значений, например показов или кликов.
Строка 11: ROUND(AVG(g.avg_position), 2) AS avg_position, — Округляет рассчитанное число, чтобы результат было удобно читать.
Строка 12: COUNT(DISTINCT g.query) AS queries_count — Считает количество строк или уникальных значений.
Строка 13: FROM pages AS p — Указывает основную таблицу или источник данных для запроса.
Строка 14: JOIN gsc_daily AS g ON g.page_id = p.page_id — Соединяет текущие данные с другой таблицей по условию ON.
Строка 15: GROUP BY p.page_id, p.url, p.page_type, p.search_intent; — Группирует строки, чтобы можно было считать суммы, средние и количества.

Что должно получиться

page_gsc_summary будет пересчитана с учетом page_id 21-25.

Если появилась ошибка

Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.