同环比的核心是对齐
同比是本期除以去年同期,环比是本期除以上一期。真正容易出错的是对齐规则:日粒度按自然日对齐,周粒度按同星期对齐,月粒度按自然月对齐。对齐口径必须固定并写进指标卡,跨期比较才成立。
基本信息
| 同比 | 本期除以去年同期,按同一日历位置对齐 |
|---|---|
| 环比 | 本期除以相邻上一期 |
| 周口径 | 按同星期对齐,不能简单减 7 天 |
| 月口径 | 按自然月对齐,需考虑月长差异 |
| 边界处理 | 闰年与节假日错位要附对齐说明 |
典型使用场景
- 经营分析:同比看长期趋势,环比看近期动能
- 节假日对比:标注今年与去年同期节假日位置差异
- 周报编制:周环比按同星期对齐,避免工作日数不同造成假波动
- 目标考核:同比增速作为考核项,必须先固定对齐规则
- 异常筛查:同环比同时剧烈波动的指标优先排查数据问题
同比与环比的实现
同比与环比的实现
-- 同比:与去年同期对齐,注意闰年差值
SELECT cur.dt, cur.amt,
cur.amt / nullif(prev.amt, 0) - 1 AS yoy
FROM dws_sales_day cur
LEFT JOIN dws_sales_day prev
ON prev.dt = add_months(cur.dt, -12)
WHERE cur.dt = '2026-10-11';
-- 环比:与上一日对齐,首日无上期时结果为空
SELECT dt, amt,
amt / nullif(lag(amt) OVER (ORDER BY dt), 0) - 1 AS dod
FROM dws_sales_day
WHERE dt BETWEEN '2026-10-01' AND '2026-10-11';三类对齐方式
| 粒度 | 对齐方式 | 常见错误 |
|---|---|---|
| 日 | 去年同期同月同日 | 直接减 365 天,闰年错位 |
| 周 | 按同星期对齐 | 按 7 天前取数,星期错位 |
| 月 | 按自然月对齐 | 用 30 天近似,月长差异被放大 |
去年同期优先用日期维表做自然年偏移,而不是固定减 365 天:闰年时两者差一天,会同时影响分子与分母,使增速出现系统偏差。
上期为空要区分真实为零与没有数据:两者在比值上表现相同,报表需要单独标记,否则新上线的业务会被算成无限增长。
展示同环比时要标注基期含义:基期包含大促、调价或数据修复事件时增速失去可比性,需要在报表注释里说明,否则容易被当成经营结论。