Шаг 168. Создаем список thin content: меньше 1000 слов

sqlГлава 11. Тренажер SEO-операций без абстракций

Что делаем

Создаем список thin content: меньше 1000 слов

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

Этот шаг собирает страницы с объемом текста меньше 1000 слов и сохраняет их в отдельную таблицу.

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

DROP TABLE IF EXISTS thin_content_045;

CREATE TABLE thin_content_045 AS
SELECT p.url,
       p.page_type,
       cp.word_count,
       COALESCE(s.impressions, 0) AS impressions,
       'Расширить текст' AS action
FROM pages AS p
JOIN crawl_pages AS cp ON cp.page_id = p.page_id
LEFT JOIN page_gsc_summary AS s ON s.page_id = p.page_id
WHERE cp.word_count < 1000
ORDER BY impressions DESC, cp.word_count ASC;

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

Строка 1: DROP TABLE IF EXISTS thin_content_045; — Удаляет старую учебную таблицу с таким именем, если она уже была создана раньше.
Строка 2: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 3: CREATE TABLE thin_content_045 AS — Создает новую таблицу из результата SELECT-запроса.
Строка 4: SELECT p.url, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 5: p.page_type, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 6: cp.word_count, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 7: COALESCE(s.impressions, 0) AS impressions, — Подставляет запасное значение, если в данных встретился NULL.
Строка 8: 'Расширить текст' AS action — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 9: FROM pages AS p — Указывает основную таблицу или источник данных для запроса.
Строка 10: JOIN crawl_pages AS cp ON cp.page_id = p.page_id — Соединяет текущие данные с другой таблицей по условию ON.
Строка 11: LEFT JOIN page_gsc_summary AS s ON s.page_id = p.page_id — Соединяет текущие данные с другой таблицей по условию ON.
Строка 12: WHERE cp.word_count < 1000 — Начинает фильтр: дальше перечисляются условия, какие строки оставить.
Строка 13: ORDER BY impressions DESC, cp.word_count ASC; — Сортирует результат, чтобы важные строки оказались выше или ниже.

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

Появится таблица thin_content_045 с кандидатами на расширение.

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

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