значение?
SELECT AVG(runningDifference(timestamp)) FROM (SELECT timestamp FROM t ORDER BY timestamp LIMIT 100)
или порядок "вне скобок" подзапроса уже не обязан сохраняться?
в вашем случае детерминированное
runningDifference плохая функция, которая возвращает мусор select number,runningDifference(number) from numbers(10) settings max_block_size=1;
Тз-за того, что лимит маленький?
Типа нули будут? Это специфицировано
runningDifference работает в рамках блока, если предыдущая стадия пайплана вернет блоки по три строки, у вас runningDifference будет для 3 строк
т.е. результат у runningDifference очень приблизительный, и иногда полный треш
Нет изза того что вы применяете агрегатную функцию на отсортированный подзапрос не меняя настройки (тот же блок сайз, max_threqds, etc), сожержимое таблицы. Но как вам уже объяснили running* это не норма. Пользуйтесь window function (просто их раньше не было в кх)
Спасибо, вот эти технические детали и важны
Скорей там нужен (max(t) - min(t))/(count(t) - 1) having count(t) > 1
вы правы, я сам себе додумал что в реальности у вас запрос будет с плавающим окном
хотя не, эт не одно и тоже
Т.е. это именно из-за особенностей реализации. Но стандартом не гарантировано, как не гарантируется в документации?
ну такой вещи как runningDifference вообще нет в стандартах....
Обсуждают сегодня