示例
示例
SELECT product_id, month, revenue,
LAG(revenue, 12) OVER (PARTITION BY product_id ORDER BY month) AS last_year,
ROUND(100.0 * (revenue - LAG(revenue, 12) OVER (PARTITION BY product_id ORDER BY month))
/ NULLIF(LAG(revenue, 12) OVER (PARTITION BY product_id ORDER BY month), 0), 2) AS yoy_pct
FROM product_monthly;| 偏移 | 12 期 = 上年同期(按月) |
|---|---|
| 更稳写法 | 按“年月-1 年”自连接或先用日历表对齐 |
| 缺失月 | 偏移量会错位,先检查并补齐 |