дата инженеретта
@data_engineerette
28 22 2.5K
CREATE TABLE user_activity (
UserID UInt64, --есть пользак
PageViews UInt8, --он посетил столько страниц
Sign Int8 --системное поле
)
ENGINE = CollapsingMergeTree(Sign)
ORDER BY UserID; --будем сворачивать по этому полюINSERT INTO user_activity VALUES (999, 10, 1); --сначала просмотрел 10 страниц
INSERT INTO user_activity VALUES (999, 10, -1), --а теперь 10 страниц уже неактуальны (видите -1?)
(999, 11, 1); --потому что он просмотрел 11 страницSELECT * FROM user_activity FINAL;OPTIMIZE TABLE user_activity;
SELECT * FROM user_activity; --FINAL уже не нуженSELECT UserID, sum(PageViews * Sign)
FROM user_activity
group by UserID;Платформа использует файлы cookie для авторизации и сохранения настроек. Продолжая работу, вы соглашаетесь с нашей Политикой использования cookie.
Обсуждение 28
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram