Таблица Clickhouse с вложенной картой:
CREATE TABLE IF NOT EXISTS Test.NestedTest2
(
-- slices
idx1 UInt8, -- just some index 1
idx2 UInt8, -- just some index 2
-- metrics
totalCnt UInt64, -- total http response count
codeMap Nested(
key UInt16, -- http response code
value UInt64 -- http response count
)
) Engine MergeTree()
PARTITION BY (idx1)
ORDER BY (idx1, idx2)
INSERT INTO Test.NestedTest2 (idx1, idx2, totalCnt, codeMap.key, codeMap.value)
VALUES
(1, 1, 5, array(200), array(5))
(1, 1, 5, array(204), array(5))
(1, 1, 15, array(404, 502), array(5, 10))
(1, 2, 45, array(404, 502), array(20, 25))
(2, 1, 20, array(404, 502, 200), array(5, 5, 10))
Где totalCnt
только в качестве примера. Точно так же это может быть связано с общим значением, таким как memoryUsage
.
Мне нужно получить конкретный c код ответа в общем количестве ответов в том же выборе:
-- where idx1 = 1
/*
┌─code─┬─count─┬─totalCnt─┐
│ 200 │ 5 │ 70 │
│ 204 │ 5 │ 70 │
│ 404 │ 25 │ 70 │
│ 502 │ 35 │ 70 │
└──────┴───────┴──────────┘
*/