В этом уроке рассмотрим с вами на конкретном примере основные отличия двух с виду похожих функций AGO() и AT_DATE(). Как они работают и когда и какую функцию лучше использовать.
В этом уроке рассмотрим с вами на конкретном примере основные отличия двух с виду похожих функций AGO() и AT_DATE(). Как они работают и когда и какую функцию лучше использовать.
Сегодня давайте поговорим о двух с виду очень похожих функциях AGO() и AT_DATE(). У них даже синтаксис почти одинаковый. Но все же почему-то это две разные функции. И сегодня я покажу наглядно на примере как работает каждая из них и зачем они нужны.
И рассмотрим это на вот таком вот простом примере с минимумом данных: ежедневные срезы неких сумм.
Функция AGO()
И давайте начнем с функции AGO(). Что же она делает.
Синтаксис
AGO( measure, date_dimension [ , unit [ , number ] ] )
Описание
Вычисляет значение показателя measure
для даты/времени с указанным смещением.
Аргумент date_dimension
задает измерение, вдоль которого делается смещение.
Аргумент number
задает размер смещения в единицах аргумента unit
. Задается целым числом. Может принимать отрицательные значения. Значение по умолчанию равно 1
.
Аргумент unit
задает единицу измерения для number
. Принимает следующие значения:
"year"
— год;"month"
— месяц;"week"
— неделя;"day"
— день (значение по умолчанию);"hour"
— час;"minute"
— минута;"second"
— секунда.
Возможен вариант использования AGO( measure, date_dimension, number )
. В этом случае аргумент unit
принимает значение "day"
.
Давайте в нашем условном примере создадим новое поле с этой функцией и посмотрим данные с размерностью неделя. Заполняем все показатели: агрегация суммы, по полю с датой и размерность неделя.
AGO(SUM([Сумма]),[Дата], "week")
Теперь добавим это новое поле в таблицу и посмотрим, что получится.
А получилось у нас то, что суммы просто сместились на неделю вперед. По сути мы получили те же самые цифры, но со смещением.
Функция AT_DATE()
А теперь давайте проделаем то же самое, но со второй функцией и посмотрим, как поведет себя она.
Синтаксис
AT_DATE( measure, date_dimension, date_expr )
Описание
Вычисляет measure
для даты/времени, заданных выражением date_expr
. Позволяет получить показатель на начало или конец периода, или на конкретную дату.
Аргумент date_dimension
задает измерение, вдоль которого делается смещение.
В качестве аргумента date_expr
можно использовать:
- конкретную дату;
- функцию получения текущей даты TODAY();
- функции для вычисления даты и времени.
Описание хоть и отличается, но пока не очень понятно, что же будет происходить. Поэтому создаем новое поле и прописываем по сути те же самые параметры: агрегация суммы, по полю дата с размерностью месяц.
AT_DATE(SUM([Сумма]),[Дата],DATETRUNC([Дата], "week"))
Но обратите внимание, что тут группировку по неделе мы задаем не просто словом week, а через функцию DATETRUNC(). Это единственное отличие.
Добавляем теперь это поле на чарт и смотрим, что получается.
А с этой функцией мы получили не смещение сумм, а сумму на конкретную дату. А именно — на первый день каждой недели. Всю неделю мы видим сумму ее первого дня. А это значит, что мы получили уже совсем другой прикладной смысл.
Вывод
Итак, давайте подведем итог — чем же отличаются эти функции.
AGO() хорошо использовать при анализе величин со смещением. Например, темпы роста/падения, где сравнивается прошлый месяц/квартал/год против текущего. Сколько заказов, прибыли и т.д. у нас стало в этой месяце по сравнению с прошлым.
А вот AT_DATE() хорошо подойдет для анализа показателей на конкретную дату. Например, по сравнению с началом/концом года, месяц или квартала.
Надеюсь, данный урок был вам полезен!
Более подробно о том, как именно сделать это, смотрите в подробном видеоуроке ниже.
Наши курсы
Более подробно, как это сделать, можно посмотреть тут.
Если вам понравился урок, то можете поддержать проект по кнопке ниже. Это очень поможет делать для вас больше интересных и полезных выпусков. Спасибо!
Задать вопросы и обсудить волнующие темы про аналитику данных теперь можно на нашем форуме.
Если вам понравился урок, подписывайтесь на канал или группу и ставьте лайки. А также пишите в комментариях свои кейсы или вопросы. Самые интересные мы обязательно разберем.