Для упрощения например есть табличка с одним полем event UInt32 вот что будет правильнее:
CREATE MATERIALIZED VIEW events (event UInt32, count UInt32) ENGINE = SummingMergeTree((count)) ORDER BY (event) AS SELECT event, 1 FROM stats
и потом запрос вида
SELECT event, sum(count) FROM events GROUP BY event
или
CREATE MATERIALIZED VIEW events (event UInt32, count AggregateFunction(count)) ENGINE = SummingMergeTree((count)) ORDER BY (event) AS SELECT event, countState() FROM stats
GROUP BY event
ну или AggregatingMergeTree потому что тут они вроде одинаково работать будут и запрос
SELECT event, countMerge(count) FROM events GROUP BY event
AggregateFunction хранит стейт, который не нужен для sum. Занимает место и тормозит
Обсуждают сегодня