запрос. А во втором просто запрос с фильтром по дате. Как же первый может быстрее работать?
Второй запрос зашёл в секцию, посчитал сумму.
Первый запрос зашёл в секцию, посчитал сумму, от нее посчитал ещё сумму.
не-не, второй запрос работает быстрее, конечно же. ну вот в таком выполнении запросов разница была бы «небольшой» а по факту она отличается в разы, и как раз поэтому и возник вопрос
Почему она небольшой должна быть? Вобще, агрегат от агрегата, как-то неоптимально выглядит. А нельзя вместо второй агрегации использовать runningAccumulate/ arrayCumSum/ groupArrayMovingSum? По смыслу они вроде бы для таких случаев и сделаны?
ну, вот я видимо туплю как ими сделать, тоже есть ощущение что можно через них а небольшой должно быть потому что в пределе можно реализовать так чтобы была идентичная сложность (вместо одно счетчика (как во втором запросе) сделать 2 счетчика локальный по первой внутреннему групбайю и по второму групбаю) оффтоп: если включить optimize_aggregation_in_order то работает получше
Вы выше писали, что у вас в подзапросе и запросе разные агрегаты. Какой где?
У внутреннего mean у верхнего sum
Если получится, пришлю, что получилось
Обсуждают сегодня