Как и любая другая реляционная БД, GBQ для работы с данными поддерживает язык запросов SQL.
Приведем несколько простых примеров работы с данными с использованием базовых SQL запросов.
Для вашего удобства BQ может самостоятельно сформировать скелет запроса к желаемой таблице. Для этого нужно выбрать таблицу (или вьюшку) и нажать кнопку “Query table” (“Query view”)
После чего у вас появится базовый скелет запроса к этой таблице (вьюшке), с которым уже можно работать.
Рассмотрим на 3-х примерах базовые запросы для получения данных:
1. Получим все данным из таблицы semantics_dashboard только по одному конкретному проекту (id = 1049) и отсортируем в порядке убывания дат (чтобы в начале получить самые последние данные)
Данный запрос будет выглядеть следующим образом:
(После знака “--” красным идут поясняющие комментарии к тексту запроса. Запускает запрос кнопка “RUN”. Полученный ответ выводится ниже запроса в окне “Query results”)
Текст запроса:
SELECT * FROM `seowork.demo_views.v_semantics_dashboard`
WHERE project_id = 1049
ORDER BY date desc
2. Из таблицы competitors_dashboard выведем данные по всем конкурентам и их видимости со следующими условиями:
только в рамках проекта с id=1049
за видимость возьмем метрику %Ptraf - в таблице это поле potential_traffic_percent
за один конкретный день 04.01.2020
только по яндексу (поле search_engine в таблице)
отсортируем их в порядке убывания метрики %Ptraf -
Таким образом мы увидим на первых позициях конкурентов с максимальным %Ptraf за 04.01.2020 в яндексе.
Посмотрим на сам запрос и его результат:
Текст запроса:
SELECT competitor, potential_traffic_percent
FROM `seowork.demo_views.v_competitors_dashboard`
WHERE project_id = 1049 and date = ‘2020-01-04’
and search_engine = ‘yandex’
ORDER BY potential_traffic_percent desc
3. Из таблицы semantics_category выберем названия всех категорий, принадлежащих одному проекту (id = 1049) и средние значение спроса “WS” (в таблицах BQ это поле frequency2 ) по каждой из этих категорий.
Для того, чтобы написать такой запрос, нужно знать следующее:
Расчет среднего осуществляется функцией avg().
Так как нам необходимо рассчитать средний спрос по каждой категории, данные нужно сгруппировать по этим категориям. Для этого используется оператор group by.
Итак, наш запрос и полученный результат будут выглядеть следующим образом:
Текст запроса:
SELECT category_name, avg(frequency2)
FROM `seowork.demo_views.v_semantics_category`
WHERE project_id = 1049
GROUP BY category_name