-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WFs are calculated before filtration which contains other WFs #827
Comments
Добрый день.
Запрос в истоник за данными можно посмотреть в Инспекторе (выбрать соответсвующий пункт в меню чарта в трех точках). |
Запрос в инспекторе (для второго скриншота): SELECT
|
Проблема не в этом, а в том, что функция |
Добрый вечер Действительно, имеет место не совсем ожидаемое поведение сервиса При использовании нескольких оконных функций в чарте, если одну из них добавить в фильтр, все оконные функции будут посчитаны на одном уровне запроса, а фильтр будет применен только к результату – т.е. оконные функции посчитаются до фильтрации – некорректное поведение характерно для некоторых случаев использования однородных оконных функций одновременно в фильтрах и других секциях чарта Я переведу этот issue в релевантный репозиторий, а для данного чарта могу порекомендовать, если это возможно, использовать для фильтра поле без оконной функции, например для DATEPART(TODAY(), 'year') - DATEPART([act_date], 'year') |
Создал столбчатую диаграмму, ось X -- дата [act_date]).
Чтобы отобразить значения только для минимальной и максимальной даты, использую фильтр [only_border_dates]:
MIN([act_date]) = MIN(MIN([act_date]) TOTAL) OR MAX([act_date]) = MAX(MAX([act_date]) TOTAL)
Отображает все корректно (см. фото 1).
Кроме того, есть вычисляемое поле [years_from_now], которое вычисляет округленное вверх в годах время до последней даты в датасете:
CEILING((DATE(MAX(MAX([act_date]) TOTAL)) - [act_date] + 1) / 365)
Создаю селектор по этому вычисляемому полю ("сколько последних лет брать"). Ставлю значение 1. После этого столбик для минимальной даты пропадает (для максимальной остаётся).
При этом если убрать ограничение [only_border_dates], а вместо исходного поля подставить MIN([act_date]) - MIN(MIN([act_date]) TOTAL), то вместо ожидаемых значений 0, 7, 14, 21, ... (так как сначала селектором убрали самые первые значения) получаются значения 1449, 1456, 1463, ... (как будто селктор по вычисляемому полю отработал позже).
Подскажите, пожалуйста, есть ли здесь ошибка в работе Datalens, или здесь все корректно? Версия 1.19.0
The text was updated successfully, but these errors were encountered: