BigQuery/SQL - 特定变体的拆分值

Posted

技术标签:

【中文标题】BigQuery/SQL - 特定变体的拆分值【英文标题】:BigQuery/SQL - Split value on specific variants 【发布时间】: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

【问题讨论】:

【参考方案1】:

考虑下面

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

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

【讨论】:

再次感谢您:)

以上是关于BigQuery/SQL - 特定变体的拆分值的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery SQL 中的拆分函数

如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?

获取变体的特定属性对应的数据值

努力从 BigQuery SQL 中的时间戳字段中提取特定月份的 DATE

在流分析中将时间戳拆分为单独的列,以便在 Power BI 中进行进一步筛选

根据 Power BI 中的 RLS 筛选值选择特定书签