在OBIEE的销售报告中,我需要计算几年的月平均值。问题是某些月份没有任何记录的销售,因此我无法将年度总数除以12以获得平均值。
我们一直在尝试使用COUNT(DISTINCT),但无法正常工作。我想出了一个非常粗糙的公式,该公式确实有效,但是由于它使用了CASES,所以速度太慢。这是我的公式:
IFNULL(FILTER("Sales"."Total") USING ("Calendar"."Year" = 2015)), 0) /
((CASE WHEN FILTER("Sales"."Total") USING ("Calendar"."Year" = 2015) AND ("Calendar"."Month" = 1)) IS NULL THEN 0 ELSE 1 END) +
(CASE WHEN FILTER("Sales"."Total") USING ("Calendar"."Year" = 2015) AND ("Calendar"."Month" = 2)) IS NULL THEN 0 ELSE 1 END) +
(CASE WHEN FILTER("Sales"."Total") USING ("Calendar"."Year" = 2015) AND ("Calendar"."Month" = 3)) IS NULL THEN 0 ELSE 1 END) +
...
(CASE WHEN FILTER("Sales"."Total") USING ("Calendar"."Year" = 2015) AND ("Calendar"."Month" = 12)) IS NULL THEN 0 ELSE 1 END)
)
有人可以在不使用CASES的情况下想出产生相同输出的公式吗?