Google bigquery 在google bigquery中添加带条件的值

Google bigquery 在google bigquery中添加带条件的值,google-bigquery,Google Bigquery,我需要在GoogleBigQuery中添加一些带有条件的值 注意:我编辑了原始问题,因为它不够准确 感谢两位试图帮助我的参与者。 我试图应用您善意建议的解决方案,但结果是,我从pct列得到了相同的结果 大概是这样的: 以下是更详细的定义: 栏目: 店铺:店铺位置 品牌:在店内销售的汽车品牌 销售:在每个门店销售的每个品牌的销售额 排名:每个店铺位置每个品牌的排名,最大的越大 总销售额商店:每个商店位置所有品牌销售额的总和 pct:与店铺位置相关的品牌销售额百分比 pct_acc: 我需要计算的

我需要在GoogleBigQuery中添加一些带有条件的值

注意:我编辑了原始问题,因为它不够准确

感谢两位试图帮助我的参与者。 我试图应用您善意建议的解决方案,但结果是,我从pct列得到了相同的结果

大概是这样的:

以下是更详细的定义:

栏目:

店铺:店铺位置

品牌:在店内销售的汽车品牌

销售:在每个门店销售的每个品牌的销售额 排名:每个店铺位置每个品牌的排名,最大的越大

总销售额商店:每个商店位置所有品牌销售额的总和

pct:与店铺位置相关的品牌销售额百分比 pct_acc:

我需要计算的是pct_acc,它是商店排名的累计总和,而与品牌无关


我需要的是达到这样的结果,然后将结果保存到另一个结果中,如下所示:

如果您只需要具有该条件的行的最终总和,您可以尝试:

SELECT  
   SUM (IF(Rank < 2, Values, 0) AS condition1 
FROM table
如果只想获得具有该条件的行的秩和和,可以尝试这样做

SELECT  
   Rank,
   SUM (IF(Rank < 2, Values, 0) AS condition1 
FROM table
WHERE
   RANK < 2
GROUP BY  
   Rank
最后,如果您想获得考虑所有行的秩和,可以尝试执行以下操作:

SELECT  
   Rank,
   SUM (IF(Rank < 2, Values, 0) AS condition1 
FROM table
GROUP BY  
   Rank

我希望它有帮助

您可以使用以下查询来获取所需的数据:

select values, rank, 
sum(case when rank<2 then values else 0 end) condition1

from table
group by values, rank
为了得到最终的表,您可以使用case语句和groupby的组合

e、 g


Sandesh感谢您的回复。我试过了,但我得到了一个类似于一列的复制品。我想这是因为我缺乏解释能力。谢谢你的回复。对不起…………L.ValoDeDeNeReS更新了我的答案来考虑您的新需求,而不是链接到图像——请提供输入和预期输出作为文本,这样我们可以更好地帮助您感谢您的详细响应。我试图应用它,但我认为我给出的例子不是我在这个案例中应用的例子。我只能感谢你的帮助,并为它可能产生的挫折感道歉。再次非常感谢,对不起
select shop, brand, sales, rank, total_sales_shop, pct , 
sum(pct) over (partition by shop order by rank) as pct_act
from data
select shop,
max(case when rank=1 then pct_act end) as rank_1,
max(case when rank=2 then pct_act end) as rank_2,
max(case when rank=3 then pct_act end) as rank_3,
max(case when rank=4 then pct_act end) as rank_4,
max(case when rank=5 then pct_act end) as rank_5
from cumulative_sum
group by shop