Javascript 如何将度量作为单个计算值(平均10天)而不是按粒度(每日度量)进行查询?

Javascript 如何将度量作为单个计算值(平均10天)而不是按粒度(每日度量)进行查询?,javascript,analytics,cube.js,Javascript,Analytics,Cube.js,我有一个疑问。我目前有一个多维数据集,它的预聚合定义为日粒度和一些度量值a、B、C。 当我使用固定的日期范围和粒度的timeDimension进行查询时,预聚合效果很好(它检索一个我可以在图表中绘制的时间序列,所以到目前为止一切正常) 我的问题是,我还想将这些度量(A,B,C)作为单个值平均显示,但是如果我从timeDimension中删除粒度,多维数据集将停止使用预聚集,而代之以执行完整查询 总结: 我需要为固定时间范围内的每一天检索一个度量值(例如sales$$),并且我还需要月平均值(作为

我有一个疑问。我目前有一个多维数据集,它的预聚合定义为日粒度和一些度量值
a、B、C
。 当我使用固定的
日期范围
粒度
timeDimension
进行查询时,预聚合效果很好(它检索一个我可以在图表中绘制的时间序列,所以到目前为止一切正常)

我的问题是,我还想将这些度量(
A,B,C
)作为单个值平均显示,但是如果我从
timeDimension
中删除
粒度,多维数据集将停止使用预聚集,而代之以执行完整查询

总结:
我需要为固定时间范围内的每一天检索一个
度量值
(例如sales$$),并且我还需要月平均值(作为单个数字)。如何构建第二个查询(单值
measure
)?对于第一个,我只需添加以下
timeDimension

{
“粒度”:“天”,
“维度”:“时间戳”,
“日期范围”:[
“2020-01-26T00:00:00Z”,
“2020-02-06T00:00:00Z”
]
}

但是当我希望将相同的
dateRange
的度量值聚合为单个值时,我不知道如何构建查询。

所有
avg
度量值都被视为非加法,这就是为什么对于包含
avg
度量值的查询,大多数适用于加法的汇总值未被选择的原因:

然而,对于平均度量有一个技巧,允许将非加性度量重新分类为叶度量加性。例如,您可以重写

cube(`cube`{
// ...
措施:{
平均数a:{
// ...
类型:`avg`
},
平均数b:{
// ...
类型:`avg`
},
// ...
},
// ...
预集:{
平均汇总:{
类型:`汇总`
测量参考:[平均值A,平均值B,平均值C],
timeDimensionReference:时间戳,
“天`
}
}
})
致:

cube(`cube`{
// ...
措施:{
A:{
// ...
},
B:{
// ...
},
// ...
计数:{
类型:`计数`
},
平均数a:{
sql:`${A}/${count}`,
类型:`编号`
},
平均数b:{
sql:`${B}/${count}`,
类型:`编号`
},
// ...
},
// ...
预集:{
平均汇总:{
类型:`汇总`
度量值引用:[A、B、C、计数],
timeDimensionReference:时间戳,
“天`
}
}
})

在这种情况下,Cube.js知道
averageA
averageB
averageC
度量值由
A
B
组成,
C
count
并将使用
averagesRollup
作为叶测量加法查询并返回结果,即使未设置时间维度粒度。

Pavel,非常感谢!我仍然有一个疑问:例如,averageB度量值表示“B/count”,但它是否应该类似于“sum(B)/count”?或者B度量值需要是“sum”类型?度量值B需要是某种加法类型,如
sum
。否则它也不会被使用。