Как и любая другая реляционная БД, 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

Вы нашли ответ?