расчет прибыли с порогами с использованием sql - PullRequest
0 голосов
/ 27 июня 2018

Мне нужно рассчитать прибыль, полученную от выручки за год. Ниже приведен пример 5 лет и полученный доход:

 year    revenue
 1       5,000,000
 2       10,000,000
 3       25,000,000
 4       30,000,000
 5       30,000,000

Процент, применяемый для расчета прибыли, указан ниже и зависит от абсолютной выручки за год. По существу, сгенерированный% прибыли уменьшается с увеличением выручки.

Таблица ниже представляет минимальный доход для данного процента. Например: доход до 15 млн. Имеет процент прибыли 30%, доход от 15-20 млн.> 28%, доход от 20-25 млн.> 25% до 25 млн. +> 20%.

 min_revenue     profit_perc
 0               0.3
 15,000,000      0.28
 20,000,000      0.25
 25,000,000      0.2

Например, в 1-м году расчет прост, поскольку выручка падает только в одно ведро, поэтому просто 5,000,000 * 0.3 получить прибыль.

Расчет усложняется в 4 и 5 году, так как доход попадает в несколько групп. Пример расчета для года 4:

15,000,000 * 0.3 + 5,000,000 * 0.28 + 5,000,000 * 0.25 + 5,000,000 * 0.2

Честно говоря, не знаю, с чего начать в SQL, любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 июня 2018

Хммм. Я бы предложил добавить max_revenue в таблицу доходов. В большинстве баз данных вы можете просто использовать lead() для этого.

select year, revenue, sum(prof)
from (select year, revenue, min(e.revenue, r.max_revenue) * r.profit_perc as prof
      from example5 e join
           revenue r
           on e.revenue >= e.min_revenue
     ) yr
group by year, revenue;

Если вы не можете напрямую добавить его, то вы можете использовать коррелированный подзапрос для получения следующего дохода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...