我有一个查询,我正试图把它放在googlebigquery中,它将使每个客户的销售额减少十分之一。我遇到的问题是,如果一个十分位数在许多客户具有相同销售价值的点处中断,那么尽管他们具有相同的销售价值,他们最终可能会以不同的十分位数结束。
例如,如果总共有20个客户,其中一个客户花了100美元,18个客户花了50美元,还有一个客户花了25美元,那么由于创建了相等的组,花费50美元的18个客户仍然会被划分到所有的十分位,而实际上我希望他们被放在同一个十分位。
我使用的数据显然要复杂一点——大约有1000万客户,销售额是在每个客户所属的特定群体中决定的。
示例代码:
NTILE(10) OVER (PARTITION BY customer_group ORDER BY yearly_sales asc) as current_sales_decile
ntile函数可以工作,但是我遇到了上面描述的问题,还没有找到解决方法。欢迎提出任何建议。
1条答案
按热度按时间tuwxkamq1#
你自己算算总数:
这样可以更好地控制瓷砖的形成方式。特别是,具有相同值的所有行都位于同一个磁贴中。