Не только sum() и uniq(): малоизвестные и очень полезные функции ClickHouse
В статье разберем малоизвестные, но очень полезные функции ClickHouse с точки зрения аналитика. Покажу на примерах, как считать сценарии поведения действия через sequenceMatch и sequenceCount, строить воронки с таймаутами с помощью windowFunnel, делать когортный retention функцией retention() и не путаться в GROUP BY. Заодно разбираем комбинаторы If, Distinct, State / Merge, ForEach - как они помогают не плодить подзапросы и вынести тяжёлую логику в витрины.
Читать далее