我正在尝试计算分区上的运行总和。这似乎比中建议的方法更容易和更快BigQuery SQL 运行总计 https://stackoverflow.com/questions/14664578/bigquery-sql-running-totals.
例如:
选择语料库,语料库日期,字数,
sum(word_count) over (按语料库分区、按语料库日期排序、按单词计数、单词 DESC) as running_sum
从
[公共数据:样本.莎士比亚]
我面临两个问题:
我无法让总和从最常见的单词(word_count 最高的单词)开始。设置 DESC 或 ASC 不会改变任何内容,并且总和从最不常见的单词开始。如果我更改顺序以仅包含“order by word_count”,则运行总和不正确,因为具有相同顺序(==相同 word_count)的行产生相同的运行总和。
在我正在执行的类似查询中(见下文),运行总和的第一行产生的总和为 0,尽管我求和的字段对于第一行不是 0。为什么会发生这种情况?如何解决该问题以显示正确的运行总和?查询是:
从中选择*
(选择
蒙戈_id,
帐户ID,
活动日期,
trx_amount_sum_per_day,
SUM (trx_amount_sum_per_day) OVER (PARTITION BY mongo_id,account_id ORDER BY event_date DESC) AS running_sum,
ROW_NUMBER() OVER (PARTITION BY mongo_id,account_id ORDER BY event_date DESC) AS row_num
来自 [xs-polar-gasket-4:公共数据集.publictable]
) 按 event_date desc 排序
对于问题1:
Change:
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]
To:
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]
(原始查询是按单词排序,但您想按单词计数排序)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)