Перейти к содержанию

Неделя года

Недели года нумеруются от 1 до 52, 53 или 54 (в зависимости от того, как определяется первая неделя года). Glarus BI поддерживает несколько алгоритмов для определения первой недели года.

В конструкторе запросов вы можете группировать сводки по неделе года или извлекать неделю года из столбца даты с помощью пользовательского выражения.

Группировка сводок по неделе года полезна при создании сравнений "период к периоду" — например, при сравнении метрики с первой недели этого года с метрикой с первой недели предыдущего года.

Суммирование по неделе года в конструкторе запросов

Вы можете выбрать группировку метрики по неделе года в конструкторе запросов.

  1. В разделе "Суммировать" нажмите на Выберите столбцы для группировки и выберите поле даты.
  2. Нажмите на выпадающий список с детализацией даты (например, "по месяцам") справа от названия поля;
  3. Во всплывающем окне с параметрами детализации даты нажмите Больше…, чтобы увидеть дополнительные параметры, и выберите Неделя года.

Результат будет суммирован по номеру недели (в отличие от интервалов дат по неделям, как при выборе опции "по неделям").

Суммирование по неделе года

Как Glarus BI нумерует недели года

По умолчанию когда вы группируете по номеру недели года в конструкторе запросов, Glarus BI найдёт первое воскресенье года и назовёт эту неделю "неделя 1". Любой день до первого воскресенья считается частью последней недели предыдущего года (неделя 52 или 53).

Использование другой первой недели года

Даже если в вашем экземпляре установлен другой первый день недели в настройках локализации, группировка по неделе года в конструкторе запросов по умолчанию будет всегда использовать воскресенье как начало недели.

Способ использовать настройки локализации вашего экземпляра — это использовать функцию week в пользовательском выражении с режимом "Instance", вот так: week([Created At], "Instance") (см. ниже).

Пользовательское выражение week предоставляет три альтернативных алгоритма для вычисления первой недели года. Чтобы использовать альтернативный алгоритм для суммирования, вы можете создать пользовательский столбец, который извлекает номер недели из столбца даты с помощью выражения week, а затем группировать по этому пользовательскому столбцу.

Пользовательское выражение week

Пользовательское выражение week извлекает неделю года как целое число.

Синтаксис:

week(столбец, режим)

Примеры:

week([Created At])
week([Created At], "US")
week([Created At], "Instance")

Где:

  • столбец — это столбец даты, из которого вы хотите извлечь номер недели.
  • режим — необязательный параметр, который указывает алгоритм для определения первой недели года:
  • "ISO" (по умолчанию): первая неделя года — это неделя, содержащая первый четверг года. Недели начинаются в понедельник. Это стандарт ISO 8601.
  • "US": Первая неделя года начинается 1 января. Недели начинаются в воскресенье. В большинстве лет первая неделя будет неполной неделей.
  • "Instance": Первая неделя года начинается 1 января. Недели начинаются в день недели, указанный в настройках локализации. В большинстве лет первая неделя будет неполной неделей.

Обратите внимание, что ни один из трёх доступных в настоящее время режимов не соответствует алгоритму первой недели, используемому при суммировании по неделе года в конструкторе запросов.

Сравнение того, как разные алгоритмы вычисляют первую и последнюю недели

  • В конструкторе запросов при использовании Группировать по неделе года:

Как вычисляются номера недель для группировки по неделе года

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

Как номера недель вычисляются по 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