在内部商业智能系统中,我必须提供一些KPI 我努力提供一个 这个根据聚合级别计算的方式不同
例如:我有一个层次结构
1级/ 2级别/ 3级
所有成员都有一些自定义权重,我必须计算加权平均值,所以如果我按照
进行分组的话level1,level2是
sum(value * level3weight)/ sum(level3weight)
如果我按级别1进行分组,我必须先在级别2进行先前的计算,然后使用该结果
总和(我之前计算的结果,level2weight)/ sum(level2weight)
如果我可以使用sql子查询进行一些自定义查询,那么所有这些都很容易做到,
问题在于内部" BI系统"生成简单的SQL,我必须提供视图。
这个sql生成器只能生成min/max/sum/avg
我试图找到一种在聚合中写入的方法:"如果我在group by子句中有level2,那么我将做这个公式,否则,我将做另一个公式"。
我尝试使用grouping()但是如果我测试level2而级别2不在group by list中,则查询会崩溃。
如果我有SSAS,我将使用MDX SCOPE运算符,我不知道SQL中是否存在与MDX SCOPE等效的内容。 我也不能使用CLR自定义聚合。
我现在看到的唯一解决方案是提供2个带2个指标的视图(1个用于1级,1个用于2级)但这不起作用,因为我有多个级别和多个层次结构需要管理。
如果有人有想法
由于