Используем CTE для читаемого CTR-анализа
CTE помогает разбить сложный запрос на понятные блоки.
WITH page_metrics AS (
SELECT page_id,
url,
impressions,
clicks,
ctr,
avg_position
FROM page_gsc_summary
),
ctr_risks AS (
SELECT *
FROM page_metrics
WHERE impressions >= 500
AND ctr < 0.02
)
SELECT url,
impressions,
clicks,
ctr,
avg_position
FROM ctr_risks
ORDER BY impressions DESC;
WITH page_metrics AS ( — Начинает CTE: временный именованный блок внутри одного запроса.SELECT page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.impressions, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.clicks, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.ctr, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.avg_position — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.FROM page_gsc_summary — Указывает основную таблицу или источник данных для запроса.), — Закрывает текущую SQL-конструкцию и завершает команду точкой с запятой.ctr_risks AS ( — Дает имя промежуточному результату, который используется дальше в запросе.SELECT * — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.FROM page_metrics — Указывает основную таблицу или источник данных для запроса.WHERE impressions >= 500 — Начинает фильтр: дальше перечисляются условия, какие строки оставить.AND ctr < 0.02 — Добавляет еще одно обязательное условие к фильтру.) — Закрывает текущую SQL-конструкцию и завершает команду точкой с запятой.SELECT url, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.impressions, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.clicks, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.ctr, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.avg_position — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.FROM ctr_risks — Указывает основную таблицу или источник данных для запроса.ORDER BY impressions DESC; — Сортирует результат, чтобы важные строки оказались выше или ниже.Вы увидите страницы с CTR-риском, но запрос будет легче читать.
Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.