基于总计的SQL存储桶

时间:2020-08-28 01:27:51

标签: sql

我有一个零售商及其总销售额的清单。我想根据它们的总销售额将它们分为4类。我想证明10%的零售商覆盖了70%的销售额。

在下面的示例中,我试图将零售商划分为4个分位数。 在下面的示例中,所有10个零售商的总销售额为4500。为了将这些零售商划分为4个分位数,我按销售额从高到低对数据进行了排序,并为其分配了分位数。

每个分位数中零售商的销售总额约为4500/4 = 1100。

如何在sql中复制此逻辑?

以下是示例数据:-

data sample

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则可以使用累积和和一些算术运算。我想这就是您想要的。

select t.*,
       ceiling(running_total * 4.0 / total_total)
from (select t.*, sum(total) over (order by total desc) as running_total,
             sum(total) over() as total_total
      from t
     ) t
相关问题