Всемогущая функция Query подробное руководство
Для решения нашей задачи потребуется использовать скалярную функцию query гугл таблицы dayOfWeek для вычисления дня недели, а также арифметический оператор «/» для подсчета показателя отказов. В данном случае мы фильтруем данные по названию кампании (Campaign) и дате (Date). В тексте запроса между всеми условиями должен стоять логический оператор OR или AND. Фильтрация по датам немного отличается от фильтрации по числовым и текстовым значениям, для ее применения необходимо использовать оператор Date.
Строим запрос на основе объединения данных из нескольких таблиц с одинаковой структурой
- Построим отчет, в котором в строках будет номер дня недели, в столбцах — тип устройства, а в качестве выводимых значений рассчитаем показатель отказов.
- Для того, чтобы создать копию, воспользуйтесь меню «Файл» и выберите в нем пункт «Создать копию».
- Например, используем данные только по кампаниям Campaign_1 и Campaign_2 за период октября 2015 года.
- Последнее, что режет глаз в возвращаемой таблице, — формат, в котором выводятся данные в столбце «Среднее».
- На самом деле функция Query может разрастаться до размеров программы и динамически изменять выводимую информацию в зависимости от указанных на рабочем листе данных.
Далее остается переписать запрос так, чтобы ссылаться на столбцы базы данных не по названию, а по порядковому номеру столбца. Определим, к каким столбцам мы обращались с помощью запроса на листе Level_4. Поскольку в строках у нас будут данные по дням недели, нам достаточно прописать скалярную функцию, которая будет вычислять день недели, а также формулу вычисления показателя отказов.
Импорт данных с помощью QUERY из другой Google Таблицы
Теперь вы умеете с помощью простейшего SQL синтаксиса и функции QUERY фильтровать и сортировать данные. В Google Docs, копию которого вы только что создали, существует несколько листов. Лист DB — это база данных, к которой мы будет обращаться с помощью функции QUERY.
Агрегирующие функции, группировка данных и переименование столбцов (Group by, Label)
Принцип объединения входящих данных заключается в том, что первый аргумент функции QUERY на вход может принимать либо ссылку на диапазон либо описание массива. Ещё одна довольно мощная возможность функции QUERY — построение запрос на основе нескольких массивов данных. На самом деле функция Query может разрастаться до размеров программы и динамически изменять выводимую информацию в зависимости от указанных на рабочем листе данных. Во время изменения каких-либо параметров отчет под конструктором будет изменяться динамически. Массив — это виртуальная таблица, которая содержит строки и столбцы. На момент написания статьи SQL в Google Таблицах поддерживает 14 скалярных функций.
Всемогущая функция Query — подробное руководство
Чтобы за считанные секунды с помощью функции QUERY создать перекрестную таблицу, следует добавить в запрос описание кляузы Pivot. Построим отчет, в котором в строках будет номер дня недели, в столбцах — тип устройства, а в качестве выводимых значений рассчитаем показатель отказов. Если вы внимательно изучили структуру базы данных, находящейся на листе DB, то наверняка заметили, что у нас нет поля, содержащего информацию о дне недели, как и поля, содержащего информацию о показателе отказов. Выберем только некоторые нужные нам поля и зададим условия фильтрации и сортировки.
Все поля названы соответствующим описанию кляузы Label образом. Последнее, что режет глаз в возвращаемой таблице, — формат, в котором выводятся данные в столбце «Среднее». Для корректировки форматов, выводимых запросом данных, требуется описать кляузу Format. Ее описание схоже с описанием Label, но вместо названия поля следует прописать маску вывода данных (также в одинарных кавычках).
Далее в конструкторе отчетов вы можете изменить название полей и оно будет отображаться в финальной таблице. Еще раз напомню, что необходимо указать как минимум одну меру и одно измерение. Строкой LABEL sum(H)/sum(G) ‘’ мы убрали из подписей столбца надпись, содержащую формулу расчета.
Для округления выводимых данных до двух знаков после запятой маска должна выглядеть как ‘0.00’. Для максимального удобства предлагаю открыть и скопировать себе следующую Google Таблицу. Для того, чтобы создать копию, воспользуйтесь меню «Файл» и выберите в нем пункт «Создать копию». Я считаю Query одной из наиболее полезных функций Google Таблиц. Но в справке Google она описывается очень поверхностно, и вся мощь данной функции не раскрыта.
С помощью QUERY вы можете использовать в качестве базы данных другую Google Таблицу. Это можно сделать с помощью сочетания функций ImportRange и QUERY. Я создал новую Google Таблицу, в которую продублировал данные с листа DB из приведенного в начале статьи документа. Чтобы в качестве базы данных использовать данные из другой Google таблицы, в качестве первого аргумента функции Query выступит импортируемый функцией ImportRange диапазон.
Листы Level содержат примеры, которые мы будем рассматривать в этой статье. Единственное условие для объединения данных — одинаковая структура входящих таблиц. Округлим числа в столбце «Среднее» до двух знаков после запятой.
При более детальном знакомстве становится ясно, что она способна заменить большую часть существующих функций.
Например, используем данные только по кампаниям Campaign_1 и Campaign_2 за период октября 2015 года. Для фильтра и сортировки в текст запроса необходимо добавить описание кляуз Where и Order. Для вывода в результирующую таблицу описанного выше примера нам понадобятся поля Campaign, Date и Sessions. А в тексте запроса — делать ссылки на ячейки, содержащие нужные данные. Например, мы можем динамически задать диапазон дат, который хотим вывести в динамическую таблицу, либо сделать возможность динамически добавлять и убирать различные поля результирующей таблицы.
Строкой FORMAT sum(H)/sum(G) ‘0.00%’ мы передали процентный формат показателю отказов в отчете. В целом, описанного в примерах выше синтаксиса вполне достаточно, чтобы начать активно использовать функцию QUERY, но в завершении статьи хочу показать еще несколько интересных приемов, которые можно взять на вооружение. При написании запроса кляузы обязательно должны располагаться в таком порядке, в котором были описаны в первом разделе этой статьи. После объявления Where нам необходимо перечислить условия фильтрации. Обращение к полям базы данных осуществляется через названия столбцов рабочего листа, на котором располагается база данных.
Чтобы вычислить день недели, придется воспользоваться одной из множества скалярных функций. В нашей базе есть вся необходимая информация для расчета показателя отказов. Дальше достаточно просто применить арифметический оператор «Деление». Синтаксис запросов в функции QUERY сложен для неподготовленного пользователя. Поэтому вы можете добавить на рабочий лист различные интерактивные элементы в виде выпадающего списка, созданного с помощью функции «Проверка данных».