Неделя года¶
Недели года нумеруются от 1 до 52, 53 или 54 (в зависимости от того, как определяется первая неделя года). Glarus BI поддерживает несколько алгоритмов для определения первой недели года.
В конструкторе запросов вы можете группировать сводки по неделе года или извлекать неделю года из столбца даты с помощью пользовательского выражения.
Группировка сводок по неделе года полезна при создании сравнений "период к периоду" — например, при сравнении метрики с первой недели этого года с метрикой с первой недели предыдущего года.
Суммирование по неделе года в конструкторе запросов¶
Вы можете выбрать группировку метрики по неделе года в конструкторе запросов.
- В разделе "Суммировать" нажмите на Выберите столбцы для группировки и выберите поле даты.
- Нажмите на выпадающий список с детализацией даты (например, "по месяцам") справа от названия поля;
- Во всплывающем окне с параметрами детализации даты нажмите Больше…, чтобы увидеть дополнительные параметры, и выберите Неделя года.
Результат будет суммирован по номеру недели (в отличие от интервалов дат по неделям, как при выборе опции "по неделям").

Как Glarus BI нумерует недели года¶
По умолчанию когда вы группируете по номеру недели года в конструкторе запросов, Glarus BI найдёт первое воскресенье года и назовёт эту неделю "неделя 1". Любой день до первого воскресенья считается частью последней недели предыдущего года (неделя 52 или 53).
Использование другой первой недели года¶
Даже если в вашем экземпляре установлен другой первый день недели в настройках локализации, группировка по неделе года в конструкторе запросов по умолчанию будет всегда использовать воскресенье как начало недели.
Способ использовать настройки локализации вашего экземпляра — это использовать функцию week в пользовательском выражении с режимом "Instance", вот так: week([Created At], "Instance") (см. ниже).
Пользовательское выражение week предоставляет три альтернативных алгоритма для вычисления первой недели года. Чтобы использовать альтернативный алгоритм для суммирования, вы можете создать пользовательский столбец, который извлекает номер недели из столбца даты с помощью выражения week, а затем группировать по этому пользовательскому столбцу.
Пользовательское выражение week¶
Пользовательское выражение week извлекает неделю года как целое число.
Синтаксис:
Примеры:
Где:
столбец— это столбец даты, из которого вы хотите извлечь номер недели.режим— необязательный параметр, который указывает алгоритм для определения первой недели года:"ISO"(по умолчанию): первая неделя года — это неделя, содержащая первый четверг года. Недели начинаются в понедельник. Это стандарт ISO 8601."US": Первая неделя года начинается 1 января. Недели начинаются в воскресенье. В большинстве лет первая неделя будет неполной неделей."Instance": Первая неделя года начинается 1 января. Недели начинаются в день недели, указанный в настройках локализации. В большинстве лет первая неделя будет неполной неделей.
Обратите внимание, что ни один из трёх доступных в настоящее время режимов не соответствует алгоритму первой недели, используемому при суммировании по неделе года в конструкторе запросов.
Сравнение того, как разные алгоритмы вычисляют первую и последнюю недели¶
- В конструкторе запросов при использовании Группировать по неделе года:

week(column)илиweek(column, "ISO"):

week(column, "US"):

week(column, "Instance"), если первый день недели экземпляра — понедельник:

SQL¶
СУБД используют различные подходы и функции для извлечения недели года. Некоторые реализации предлагают множественные функции для извлечения недели года и множественные алгоритмы для вычисления недели года с использованием SQL. Обратитесь к документации вашей базы данных.
Вот неполный список примерных функций:
| База данных | Пример | Алгоритм первой недели |
|---|---|---|
| Postgres | EXTRACT(WEEK FROM TIMESTAMP created_at) |
Алгоритм ISO |
| MySQL | WEEKOFYEAR("2017-06-15") |
Первый день недели — понедельник, и первая неделя года содержит более 3 дней. Существуют альтернативные функции. |
| BigQuery | EXTRACT(WEEK FROM DATE ticreated_at) |
Недели нумеруются с 0. Даты до первого воскресенья года находятся в неделе 0. Существуют альтернативные функции. |
| Redshift | DATE_PART(week, TIMESTAMP created_at) |
Алгоритм ISO |