184 похожих чатов

Есть таблица CREATE TABLE default.device_os_1d ( `device_os` String,

`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.


что делаю не так?

2 ответов

13 просмотров

При выборке данных из таблицы AggregatingMergeTree, используйте GROUP BY и те же агрегатные функции, что и при вставке данных, но с суффиксом -Merge. https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/aggregatingmergetree/amp/

Yarlan-Zey Автор вопроса
Tagir Gumerov
При выборке данных из таблицы AggregatingMergeTree...

спасибо. только заработало без суффикса, ибо SimpleAggregate

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта