簡體   English   中英

基於總計的 SQL 存儲桶

[英]SQL bucket based on totals

我有一份零售商及其總銷售額的清單。 我想根據他們的總銷售額將他們分為 4 個類別。 我想顯示 10% 的零售商覆蓋了 70% 的銷售額。

在下面的示例中,我試圖將零售商分成 4 個分位數。 在下面的案例中,所有 10 家零售商的總銷售額為 4500。為了將這些零售商分成 4 個分位數,我按銷售額從高到低對數據進行了排序,並為它們分配了分位數。

每個分位數中零售商的銷售額總和約為 4500/4=1100。

如何在 sql 中復制此邏輯?

這是示例數據:-

數據樣本

如果我理解正確,您可以使用累積和和一些算術。 我認為這可以滿足您的要求。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM