Почему в ClickHouse нет LEAD(), но зато есть LEADINFRAME()

Звучит как заклинание

Если ты однажды пытался применить LEAD() или LAG() в ClickHouse и получил в ответ ошибку, знай — ты не один. Эти привычные функции просто не работают. Совсем. Но не спеши грустить — в ClickHouse есть своя магия: leadInFrame() и lagInFrame().

🪄 На первый взгляд звучит странно, будто ты вызываешь что-то из Хогвартса, но на деле это очень умная конструкция. Вместо простой "соседней строки", как в других СУБД, ClickHouse требует, чтобы ты заранее описал окно, в рамках которого будут работать эти функции.

И это логично: ClickHouse — про скорость и масштаб, и здесь всё работает в рамках чётко заданной "рамки" (frame), а не просто "взять строку до/после".

Так что в следующий раз, когда тебе нужно посмотреть "на одну строчку вперёд", не зови LEAD() — зови leadInFrame() и дай ему контекст. Он тебе и время сэкономит, и данные покажет правильно.

✨ Хитро, умно и немного по-чародейски.

🤔А какие вы знаете еще интересные функции используемые не во всех СУБД? Делитесь в комментариях 👇

Почему в ClickHouse нет LEAD(), но зато есть LEADINFRAME() | Сетка — социальная сеть от hh.ru