求环比增长率,要用到偏移函数,那么什么是偏移函数呢?
lead()
函数,它用于访问结果集中当前行的下一行的数据
lag()
函数用于访问结果集中当前行的前一行的数据。
怎么求环比增长率,同比增长率?
求环比增长率 = (当前月销量 - 上一月销量) / 上一月销量 * 100
求同比增长率=(今年的月份-去年的月份) / 去年的月份 *100
例题:
求环比增长率
建表,插入数据,查询表
drop database if exists db_1;
create database db_1;
use db_1;
-- 创建表
CREATE TABLE sales_data (
month VARCHAR(7) NOT NULL,
sales INT NOT NULL,
PRIMARY KEY (month)
);
-- 插入数据
INSERT INTO sales_data (month, sales) VALUES
('2023-01', 1000),
('2023-02', 1100),
('2023-03', 1050),
('2023-04', 1200),
('2023-05', 1150);
select * from sales_data;
实现
# 目标: 求环比增长率 = (当前月销量 - 上一月销量) / 上一月销量 * 100
select
month,
sales,
lag(sales, 1, 0) over(order by month) as lag_1_sales,
concat(round((sales - (lag(sales, 1) over(order by month))) / (lag(sales, 1) over(order by month)) * 100, 1), '%') as rate_3
from sales_data
;
动手试试吧~