```text
COUNT(DISTINCT(IF([日期字段] >= [开始日参数]
and [日期字段] <= [结束日参数]
and [指标字段] > 0,
[商品字段],
NULL)))
```
然后再计算当期均单款花费,写法类似:
```text
COALESCE(
SUM([当期费用字段]) OVER (PARTITION BY [维度A],[维度B],[维度C],[维度D])
/ COUNT(DISTINCT([当期款])) OVER (PARTITION BY [维度A],[维度B],[维度C],[维度D]),
0)
```
对比期同理,最后再算:
```text
[当期均单款花费] / [对比期均单款花费] - 1
```
这样写会报错:
```text
计算字段公式非法,请确认语法以及所引用字段是否存在。
[MISSING_GROUP_BY] The query does not include a GROUP BY clause. Add GROUP BY or turn it into the window functions using OVER clauses.
```
想确认一下,这种场景是不是不能把已经聚合过的“款数”字段再放到 `COUNT(DISTINCT(...)) OVER (...)` 里面?这种“均单款花费同比”应该怎么改写比较合适?