我是BigQuery上的SQL新手,并且在必须编译的项目上受阻。
我被要求在一个甚至不算总收入的数据库中找到销售额的逐年增长...我知道我必须组合各种请求,但无法弄清楚如何计算销售增长。
这是我的位置:
非常感谢!
答案 0 :(得分:1)
(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)根据您现在每行中拥有的两个值来计算同比增长率
答案 1 :(得分:1)
以下是用于BigQuery标准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
答案 2 :(得分:0)
我尝试了您的信息(加上我的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
现在应该添加%增长。看看here以获取灵感。
如果您没有成功,请告诉我,我将尽力而为,没有保证。