Почему в ClickHouse нет LEAD(), но зато есть LEADINFRAME()
Звучит как заклинание
Если ты однажды пытался применить LEAD() или LAG() в ClickHouse и получил в ответ ошибку, знай — ты не один. Эти привычные функции просто не работают. Совсем. Но не спеши грустить — в ClickHouse есть своя магия: leadInFrame() и lagInFrame().
🪄 На первый взгляд звучит странно, будто ты вызываешь что-то из Хогвартса, но на деле это очень умная конструкция. Вместо простой "соседней строки", как в других СУБД, ClickHouse требует, чтобы ты заранее описал окно, в рамках которого будут работать эти функции.
И это логично: ClickHouse — про скорость и масштаб, и здесь всё работает в рамках чётко заданной "рамки" (frame), а не просто "взять строку до/после".
Так что в следующий раз, когда тебе нужно посмотреть "на одну строчку вперёд", не зови LEAD() — зови leadInFrame() и дай ему контекст. Он тебе и время сэкономит, и данные покажет правильно.
✨ Хитро, умно и немного по-чародейски.
🤔А какие вы знаете еще интересные функции используемые не во всех СУБД? Делитесь в комментариях 👇