gpt4 book ai didi

google-bigquery - 在 BigQuery 中计算分区的运行总和

转载 作者:行者123 更新时间:2023-12-04 07:38:49 26 4
gpt4 key购买 nike

我正在尝试计算一个分区的运行总和。这似乎比 BigQuery SQL running totals 中建议的方法更容易、更快捷。 .

例如:

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]



我面临两个问题:
  • 我不能让总和从最常用的词(word_count 最高的词)开始。设置 DESC 或 ASC 不会改变任何东西,总和从最不常用的单词开始。如果我将顺序更改为仅包含“按 word_count 排序”,则运行总和不正确,因为具有相同顺序(== 相同 word_count)的行产生相同的运行总和。
  • 在我正在执行的类似查询中(见下文),运行总和的第一行产生的总和为 0,尽管我求和的字段的第一行不是 0。为什么会发生这种情况?如何解决该问题以显示正确的运行总和?查询为:

  • select * from
    (SELECT
    mongo_id,
    account_id,
    event_date,
    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
    FROM [xs-polar-gasket-4:publicdataset.publictable]
    ) order by event_date desc

    最佳答案

    对于问题 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]

    到:
    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]

    (原查询是按词排序,但你想按 word_count 排序)

    关于google-bigquery - 在 BigQuery 中计算分区的运行总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20255284/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com