【问题标题】:BigQuery/SQL - Split value on specific variantsBigQuery/SQL - 特定变体的拆分值
【发布时间】:2021-04-05 22:44:50
【问题描述】:

需要将 market_offers 列中的重复项替换为所有提供主要值的条目的 SUM 值。 但是有一种情况是有不同的等级和国家代码所以

输入

country_code    rank    store_id    category_id offers  market_offers
se              1       14582       1106        410     504860
se              1       1955        1294        2       504860
se              1       9831        1158        151     504860
se              2       666         11158       536     4000
se              2       6587        25863       6586    4000
se              2       6666        158         536     4000
se              5       65853       76722       1521    302
se              5       6587        25863       6586    302

预期结果

country_code    rank    store_id    category_id offers  market_offers
se              1       14582       1106        410     168 286
se              1       1955        1294        2       168 286
se              1       9831        1158        151     168 286
se              2       666         11158       536     1333
se              2       6587        25863       6586    1333
se              2       6666        158         536     1333
se              5       65853       76722       1521    151
se              5       6587        25863       6586    151

【问题讨论】:

    标签: mysql google-bigquery


    【解决方案1】:

    考虑下面

    select * except(market_offers), 
      round(market_offers / count(1) over(partition by market_offers, rank), 2) as market_offers
    from `project.dataset.table`               
    

    如果应用于您问题中的样本数据 - 输出是

    【讨论】:

    • 再次感谢您:)
    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 2021-01-04
    • 2019-05-29
    • 1970-01-01
    • 2019-08-18
    • 2018-07-06
    • 1970-01-01
    相关资源
    最近更新 更多