# dws_index_percentile_history 指数分位历史表

> 生成时间：2026-02-13

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | dws |
| 表名 | dws_index_percentile_history |
| 主键 | history_id |
| 唯一键 | (site_id, index_type, calc_time) |
| 数据来源 | 指数计算任务自动写入 |
| 更新频率 | 每次指数计算时追加 |
| 说明 | 记录每次指数计算的分位锚点，用于 EWMA 平滑和展示分映射 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 说明 |
|------|--------|------|------|------|
| 1 | history_id | BIGSERIAL | NO | 自增主键 |
| 2 | site_id | BIGINT | NO | 门店ID |
| 3 | index_type | VARCHAR | NO | 指数类型：WBI/NCI/RS/MS/ML |
| 4 | calc_time | TIMESTAMPTZ | NO | 计算时间 |
| 5 | percentile_5 | NUMERIC | YES | 原始 P5 分位值 |
| 6 | percentile_95 | NUMERIC | YES | 原始 P95 分位值 |
| 7 | percentile_5_smoothed | NUMERIC | YES | EWMA 平滑后 P5 |
| 8 | percentile_95_smoothed | NUMERIC | YES | EWMA 平滑后 P95 |
| 9 | record_count | INTEGER | YES | 参与计算的记录数 |
| 10 | min_raw_score | NUMERIC | YES | 原始分最小值 |
| 11 | max_raw_score | NUMERIC | YES | 原始分最大值 |
| 12 | avg_raw_score | NUMERIC | YES | 原始分平均值 |
| 13 | created_at | TIMESTAMPTZ | NO | 创建时间 |

## 业务口径

- 每次指数计算时，先从本表取上一次的 smoothed 值作为 EWMA 基准
- 新 smoothed = alpha × 本次原始分位 + (1 - alpha) × 上次 smoothed
- RS/MS/ML 展示分均走分位映射，OS 不走分位映射
- 分位历史按 `index_type` 隔离，各指数独立维护

## 使用说明

```sql
-- 查询 RS 指数最近一次分位锚点
SELECT *
FROM dws.dws_index_percentile_history
WHERE index_type = 'RS'
ORDER BY calc_time DESC
LIMIT 1;
```
