Google bigquery 在BigQuery中计算分区上的运行和

Google bigquery 在BigQuery中计算分区上的运行和,google-bigquery,Google Bigquery,我试图计算一个分区上的运行总和。这似乎比中建议的方法更简单、更快 例如: 选择语料库、语料库日期、字数, 求和(单词计数)超过(按语料库划分,语料库日期顺序按单词计数,单词描述)作为运行总和 从…起 [公共数据:样本,莎士比亚] 我面临两个问题: 我无法让总和以最常见的单词(单词数最高的单词)开头。设置DESC或ASC不会改变任何东西,总和以最不常用的单词开始。如果我将order by更改为仅包含“order by word_count”,则运行和不正确,因为具有相同顺序(=相同word_cou

我试图计算一个分区上的运行总和。这似乎比中建议的方法更简单、更快

例如:

选择语料库、语料库日期、字数, 求和(单词计数)超过(按语料库划分,语料库日期顺序按单词计数,单词描述)作为运行总和 从…起 [公共数据:样本,莎士比亚]

我面临两个问题:

  • 我无法让总和以最常见的单词(单词数最高的单词)开头。设置DESC或ASC不会改变任何东西,总和以最不常用的单词开始。如果我将order by更改为仅包含“order by word_count”,则运行和不正确,因为具有相同顺序(=相同word_count)的行生成相同的运行和

  • 在我正在执行的一个类似的查询中(见下文),运行sum的第一行产生一个0的和,尽管我求和的字段在第一行不是0。为什么会发生这种情况?如何解决此问题以显示正确的运行总和?查询是:


  • 中选择* (选择
    mongo_id,
    帐户id,
    事件日期,
    每天的trx金额和金额,
    作为运行总和的总和(按mongo\u id划分、按事件日期描述划分的帐户id顺序)的总和(每天的trx\u金额\u总和),
    行号()覆盖(按mongo\u id划分,按事件日期描述划分帐户id顺序)为行号
    来自[xs-polar-垫片-4:publicdataset.publictable]
    )按事件和日期描述的订单

    关于问题1:

    更改:

    SELECT
      corpus, corpus_date, word_count, SUM(word_count)
    OVER
      (PARTITION BY corpus, corpus_date
      ORDER BY word_count, word DESC) AS running_sum
    FROM [publicdata:samples.shakespeare]
    
    致:


    (原始查询是按单词排序的,但您希望按单词计数排序)

    加快问题2:您可以将公共数据集与数据样本共享吗?我共享了数据。请参阅修订后的问题2,了解有问题的查询库以供共享-事实上,问题2(内部报告)有一些问题需要进一步调查。请在相关时更新此问题的状态。实际上,存在一个关于OVER、PARTITION和float的问题-正在修复(感谢报告!)。当修复程序开始生产时,一个解决方法是强制转换为整数,如:选择SUM(整数(舍入(x)))OVER(按y顺序按o划分)
    SELECT
      corpus, corpus_date, word_count, SUM(word_count)
    OVER
      (PARTITION BY corpus, corpus_date
      ORDER BY word_count DESC, word) AS running_sum
    FROM [publicdata:samples.shakespeare]