![](/img/trans.png)
[英]How to get cumulative total users but ignoring the users who already appear in previous day? using bigquery
[英]how to flag % revenue from a cumulative total
考虑以下方法
select customer, amount,
if(flag, '80%', if(row_number() over(partition by flag order by amount desc) = 1, '80%', '20%')) || ' revenue' as flag
from (
select *,
(sum(amount) over(order by amount desc, customer)) / (sum(amount) over()) < 0.8 flag
from your_table
)
稍微重构的版本是
select customer, amount,
if(flag and row_number() over(partition by flag order by amount desc) > 1, '20%', '80%') || ' revenue' as flag
from (
select *,
amount < percentile_cont(amount, 0.8) over() flag
from your_table
)
如果应用于您问题中的示例数据 - output 是
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.