Oracle 计算同比环比
在Oracle中,计算同比和环比通常涉及到对时间序列数据的比较。以下是一个简单的例子,演示如何使用Oracle SQL计算同比和环比的增长率。
假设有一个名为sales_data
的表,其中包含sale_date
和sale_amount
两个字段。
SELECT
sale_date,
sale_amount,
-- 同比增长率计算
(sale_amount - LAG(sale_amount) OVER (ORDER BY sale_date)) / LAG(sale_amount) OVER (ORDER BY sale_date) * 100 AS year_over_year_growth,
-- 环比增长率计算
(sale_amount - LAG(sale_amount) OVER (PARTITION BY TO_CHAR(sale_date, 'YYYY') ORDER BY sale_date)) / LAG(sale_amount) OVER (PARTITION BY TO_CHAR(sale_date, 'YYYY') ORDER BY sale_date) * 100 AS month_over_month_growth
FROM
sales_data
ORDER BY
sale_date;
在这个查询中,LAG
函数用于获取上一行的数据。同比增长率是当前销售额减去上一年同一天的销售额,再除以上一年同一天的销售额;环比增长率是当前销售额减去上一个月同一天的销售额,再除以上一个月同一天的销售额。TO_CHAR(sale_date, 'YYYY')
用于获取销售日期的年份,以便在计算环比增长率时,只考虑同一年份内的数据。
请根据实际情况调整表名、字段名和日期格式。
评论已关闭