DS
Size: a a a
DS
DC
VB
VB
DC
R
WITH ROLLUP
?DC
WITH ROLLUP
?DC
create table xrollup(metric Int64, b date, v Int64 ) engine=MergeTree partition by tuple() order by tuple();
insert into xrollup values (1,'2018-01-01', 1), (1,'2018-01-02', 1), (1,'2018-02-01', 1), (1,'2017-03-01', 1);
insert into xrollup values (2,'2018-01-01', 1), (2,'2018-02-02', 1);
SELECT metric, toYear(b) y, toYYYYMM(b) m, SUM(v) AS val
FROM xrollup
GROUP BY metric, y, m with ROLLUP
ORDER BY metric, y, m
┌─metric─┬────y─┬──────m─┬─val─┐
│ 0 │ 0 │ 0 │ 6 │ всего по всем метрикам
│ 1 │ 0 │ 0 │ 4 │ всего по метрике 1
│ 1 │ 2017 │ 0 │ 1 │ всего по метрике 1 за 2017
│ 1 │ 2017 │ 201703 │ 1 │ всего по метрике 1 за март 2017
│ 1 │ 2018 │ 0 │ 3 │
│ 1 │ 2018 │ 201801 │ 2 │
│ 1 │ 2018 │ 201802 │ 1 │
│ 2 │ 0 │ 0 │ 2 │
│ 2 │ 2018 │ 0 │ 2 │
│ 2 │ 2018 │ 201801 │ 1 │
│ 2 │ 2018 │ 201802 │ 1 │
└────────┴──────┴────────┴─────┘
R
DC
МО
DS
VB
R
DC
select client, a, b
from (
SELECT 'a1' AS client, groupArray((['a1-a', 'a1-b', 'a1-c'], ['a1-ds', 'a1-as', 'a1-fg'])) AS goods UNION ALL
SELECT 'a2', groupArray((['a2-a', 'a2-b', 'a2-c'], ['a2-ww', 'a2-www', 'a2-fwwww'])) AS goods UNION ALL
SELECT 'a3' , groupArray((['a3-a', 'a3-ab', 'a3-c'], ['a3-ww', 'a3-www', 'a3-fwwww'])))
array join goods[1].1 as a, goods[1].2 as b
МО
DC
DN
מ
מ