`os` Int8,
                  
                  
                      `stop` DateTime,
                  
                  
                      `min_time` SimpleAggregateFunction(min, DateTime('Europe/Moscow')),
                  
                  
                      `max_time` SimpleAggregateFunction(max, DateTime('Europe/Moscow')),
                  
                  
                      `count` SimpleAggregateFunction(sumWithOverflow, Int32),
                  
                  
                      `cnt` SimpleAggregateFunction(sumWithOverflow, Int32),
                  
                  
                      `time` SimpleAggregateFunction(sumWithOverflow, Int64)
                  
                  
                  )
                  
                  
                  ENGINE = AggregatingMergeTree()
                  
                  
                  PARTITION BY toDate(toDateTime(stop))
                  
                  
                  ORDER BY (device_os, os, stop)
                  
                  
                  
                  
                  
                  
                  
                  
                  но движок почему-то проводит агрегацию не полностью и в результате такое
                  
                  
                  
                  
                  
                  SELECT *
                  
                  
                  FROM device_os_1d
                  
                  
                  WHERE (device_os = 'Android/8') AND (stop = '2020-11-05 00:00:00') AND (os = 1)
                  
                  
                  
                  
                  
                  ┌─device_os─┬─os─┬────────────────stop─┬────────────min_time─┬────────────max_time─┬────count─┬──────cnt─┬──────────time─┐
                  
                  
                  │ Android/8 │  1 │ 2020-11-05 00:00:00 │ 2020-11-03 18:51:56 │ 2020-12-24 23:56:19 │ 33120157 │ 33120157 │ 2489199251150 │
                  
                  
                  └───────────┴────┴─────────────────────┴─────────────────────┴─────────────────────┴──────────┴──────────┴───────────────┘
                  
                  
                  ┌─device_os─┬─os─┬────────────────stop─┬────────────min_time─┬────────────max_time─┬────count─┬──────cnt─┬──────────time─┐
                  
                  
                  │ Android/8 │  1 │ 2020-11-05 00:00:00 │ 2020-11-04 04:37:55 │ 2020-12-25 12:31:45 │ 17724304 │ 17724304 │ 1666960268699 │
                  
                  
                  └───────────┴────┴─────────────────────┴─────────────────────┴─────────────────────┴──────────┴──────────┴───────────────┘
                  
                  
                  
                  
                  
                  2 rows in set. Elapsed: 0.007 sec. 
                  
                  
                  
                  
                  
                  
                  
                  
                  что делаю не так?
                  
                  
                
При выборке данных из таблицы AggregatingMergeTree, используйте GROUP BY и те же агрегатные функции, что и при вставке данных, но с суффиксом -Merge. https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/aggregatingmergetree/amp/
спасибо. только заработало без суффикса, ибо SimpleAggregate
Обсуждают сегодня