Шаг 060. Находим страницы на позициях 4-20

sqlГлава 4. Агрегации для SEO

Что делаем

Находим страницы на позициях 4-20

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

Позиции 4-20 часто дают быстрые точки роста: страница уже видима, но еще не забрала максимум кликов.

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

SELECT p.url,
       ROUND(AVG(g.avg_position), 2) AS avg_position,
       SUM(g.impressions) AS impressions
FROM pages AS p
JOIN gsc_daily AS g ON g.page_id = p.page_id
GROUP BY p.page_id, p.url
HAVING AVG(g.avg_position) BETWEEN 4 AND 20
ORDER BY impressions DESC;

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

Строка 1: SELECT p.url, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 2: ROUND(AVG(g.avg_position), 2) AS avg_position, — Округляет рассчитанное число, чтобы результат было удобно читать.
Строка 3: SUM(g.impressions) AS impressions — Считает сумму числовых значений, например показов или кликов.
Строка 4: FROM pages AS p — Указывает основную таблицу или источник данных для запроса.
Строка 5: JOIN gsc_daily AS g ON g.page_id = p.page_id — Соединяет текущие данные с другой таблицей по условию ON.
Строка 6: GROUP BY p.page_id, p.url — Группирует строки, чтобы можно было считать суммы, средние и количества.
Строка 7: HAVING AVG(g.avg_position) BETWEEN 4 AND 20 — Фильтрует уже сгруппированные результаты, например по сумме показов.
Строка 8: ORDER BY impressions DESC; — Сортирует результат, чтобы важные строки оказались выше или ниже.

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

Вы увидите страницы, которые можно усилить контентом, ссылками или сниппетом.

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

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