2

我试图在总结的一段时间内从几个其他石墨指标的总和中减去几个石墨指标的总和。但是,根据我是在执行 diffSeries 之前还是之后进行总结,我会得到不同的结果。

我希望下面的这两个石墨查询是相同的,但它们不是:

summarize(
  diffSeries(
    sum(
      stats_counts.otherthing.one,
      stats_counts.otherthing.two
    ),
    sum(
      stats_counts.thing.one,
      stats_counts.thing.two,
      stats_counts.thing.three
    )
  ),
  '1week',
  'sum',
  true
)

通过 diffSeries 外部的汇总(如上),根据查看 csv 导出中的原始数据,我得到的数字似乎太高了。

diffSeries(
  summarize(
    sum(
      stats_counts.otherthing.one,
      stats_counts.otherthing.more_than_five
    ),
    '1week',
    'sum',
    true
  ),
  summarize(
    sum(
      stats_counts.thing.one,
      stats_counts.thing.two,
      stats_counts.thing.three,
    ),
    '1week',
    'sum',
    true
  )
)

以上似乎给了我正确的数据,但我宁愿只需要总结一次,而且我一生都无法弄清楚为什么它应该有所不同。当我只是将它们作为总和而不是总结时,似乎 diffSeries 的论点变得一团糟,但我不确定如何。

4

1 回答 1

2

我不完全确定,但也有一些奇怪的行为diffSeries。就我而言,看起来我总是得到积极的差异,而应该是消极的。

查看代码,diffSeries使用了一个名为safeDiff. 在我看来,函数的第一行可能是罪魁祸首。它只接受不是的值None,所以如果你尝试从 diff 一个数值None,它会输出(正)数值......我本来期望的是一个负数。

也许有一种方法可以将None/转换null为零?我在石墨中找不到这样做的功能。有一个drawNullAsZero,但有某种 atreatNullAsZero吗?或者我错过了什么。

无论如何,我怀疑这可能与您看到的问题有关。

于 2012-12-25T04:09:22.030 回答