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