• 1000 Предположим, у меня есть таблица со столбцами
hour
,
dim_a
,
dim_b
,
metric_a
,
metric_b
,
metric_c
со значениями, показанными в csv ниже
hour,dim_a,dim_b,metric_a,metric_b
0,A,X,4,4
0,A,Y,4,24
0,B,Y,20,24
1,B,Y,21,35
1,A,Y,4,35
1,C,Y,10,35
2,B,Y,21,30
2,C,Y,3,30
2,A,Y,6,30
Взгляните на metric_b
. Это значение c всегда одинаково, если значения hour
и dim_b
одинаковы, независимо от значения dim_a
. Например:
1,B,Y,21,35
1,A,Y,4,35
1,C,Y,10,35
Если мы выберем столбцы hour
, dim_b
, metric_b
и возьмем различные значения, таблица будет выглядеть так:
hour,dim_b,metric_b
0,X,4
0,Y,24
1,Y,35
2,Y,30
И по этим значениям все необходимо выполнить агрегирование по metric_b
Я хотел бы выполнять аналитические запросы по этой группировке данных, задавая c измерения и выполняя агрегирование показателей со специальным агрегированием, когда дело доходит до metric_b
.
- , когда я хочу сгруппировать по
hour
, dim_a
, dim_b
и увидеть показатели metric_a
и metric_b
. Ожидаемый результат:
hour,dim_a,dim_b,metric_a,metric_b
0,A,X,4,4
0,A,Y,4,24
0,B,Y,20,24
1,B,Y,21,35
1,A,Y,4,35
1,C,Y,10,35
2,B,Y,21,30
2,C,Y,3,30
2,A,Y,6,30
Когда я хочу сгруппировать по
dim_a
,
dim_b
и увидеть показатели
metric_a
и
metric_b
. Ожидаемый результат:
dim_a,dim_b,metric_a,metric_b
A,X,4,4
A,Y,14,89
B,Y,62,89
C,Y,13,89
Значение metric_b
рассчитывается из 89 = 24 + 35 + 30; 4 = 4
Когда я хочу сгруппировать по
dim_b
и увидеть метри c.
metric_a
и
metric_b
. Ожидаемый результат:
dim_b,metric_a,metric_b
X,4,4
Y,89,89
Значение metric_b
рассчитывается из 89 = 24 + 35 + 30; 4 = 4
И, наконец, когда я хочу сгруппировать по
dim_a
и увидеть метри c.
metric_a
и
metric_b
. Ожидаемый результат:
dim_a,metric_a,metric_b
A,18,93
B,62,93
C,13,93
Значение metric_b
рассчитывается из 93 = 24 + 35 + 30 + 4
Таким образом, агрегирование metric_b
должно быть суммой из metric_b
, но не принимая учетные записи dim_a
в качестве столбца группировки, но принимая все остальное. Есть ли синтаксис SQL, который может помочь мне в этом?
Более того, я хотел бы сказать, что эти запросы будут выполняться на AWS Redshift, и есть 20 показателей и измерение 16, то есть 36 столбцов. И строк там будет до 100 миллиардов.