будет
argMax(val,ts)
?
нет
нет, не будут но будет использоваться проекция для max(ts), так что можно такой фокус провернуть, чтобы только из одной партиции читать SELECT val FROM table WHERE ts = (SELECT max(ts) FROM table)
А вот это я как раз думал попробовать. Спасибо!
То есть патриция будет работать только если будет условие where на ts?
только учтите, что argMax скипает нуллы и для arg, и для max, так что вам их вручную надо будет отфильтровать, чтобы такой же результат получить
так чушь получится, у каждого ключа свой max , SELECT max(ts) FROM table -- это совсем не то
у какого ключа? Сергей вроде спрашивал про argMax(), а не про argMax() group by что-нибудь
в общем, Сергей, проверьте пример на вашей задаче, потому что мой ответ был про argMax() из всей таблицы если у вас "c, argMax() group by c", то, конечно же, это работать не будет
У меня Select argMax(a, ts), argMax(b,ts), c from t group by c Проекция: c, max(ts) group by c Дала ускорение на 10% Но вот уменьшения числа читаемых строк не дала.
не думаю, что проекция c max(ts) вообще используется для запросов с argMax, колонок a и b в проекции же нет ) положите в проекцию argMax, на диске будет лежать argMaxState и строки схлопнутся для отслеживания того, используется ли проекция, есть полезный explain indexes=1
Обсуждают сегодня