SQL BigQuery: вычислить значение за период времени - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в SQL на BigQuery и заблокирован для проекта, который мне нужно скомпилировать.

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

Вот где я нахожусь:

enter image description here Кто-нибудь знает, как это сделать?

Большое спасибо!

Ответы [ 3 ]

0 голосов
/ 03 августа 2018

Я попытался с вашей информацией (плюс мои составили данные за 2007 год), и я прибыл сюда:

SELECT
  year,
  sum(revenue) as year_sum
FROM
  YearlyRevenue.SportCompany
GROUP BY
  year
ORDER BY 
  year_sum

Чей результат:

R год year_sum
1 2005 1.159E9
2 2006 г. 1.4953E9
3 2007 1.5708E9

Теперь следует добавить% роста. Посмотрите здесь для вдохновения.

Дайте мне знать, если у вас ничего не получится, и я попробую трудную часть, без гарантий.

0 голосов
/ 04 августа 2018

Ниже для BigQuery Standard SQL

#standardSQL
SELECT product_line, year, revenue, prev_year_revenue, 
  ROUND(100 * (revenue - prev_year_revenue)/prev_year_revenue) year_over_year_growth_percent
FROM (
  SELECT product_line, year, revenue, 
    LAG(revenue) OVER(PARTITION BY product_line ORDER BY year) prev_year_revenue
  FROM (
    SELECT product_line, year, SUM(revenue) revenue
    FROM `project.dataset.table`
    GROUP BY product_line, year
  )
)
-- ORDER BY product_line, year
0 голосов
/ 05 июля 2018

(1) Начиная с того, что у вас есть, сгруппируйте по линейке продуктов, чтобы получить этот год и прошлогодний доход в каждой строке:

#standardsql
with yearly_sales AS (
select year, product_line, sum(revenue) as revenue
from `dataset.sales`
group by product_line, year
),

year_on_year AS (
select array_agg(struct(year, revenue))
            OVER(partition by product_line ORDER BY year
                 RANGE BETWEEN PRECEDING AND CURRENT ROW) AS data
from yearly_sales
)

(2) Рассчитайте годовой рост из двух значений, которые вы теперь имеете в каждой строке

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