ctc_poc2026/target_table_skills/tm_building_coverage_m.md

39 lines
2.4 KiB
Markdown
Raw Normal View History

# Skill: tm_building_coverage_m 楼宇覆盖指标月表计算指导 (严谨矩阵版)
## 1. 实现目标
计算楼宇实体的综合覆盖质量与业务分类标签。
## 2. 计算拓扑 (Topology)
- **计算执行环境****HiveSQL**。
- **基本架构**:采用基于 `indoor_flag` 的三重口径聚合。
- **数据流向 (二级聚合)**
1. 输入 A`tm_grid_coverage_m *` (基础事实表)。
2. 输入 B`td_building_grid_m *` (同步自 PG 的冗余桥接表)。
3. **注意**:本表不直接读取 ODS以确保栅格与楼宇指标的一致性。
## 3. 字段映射矩阵 (The Matrix)
| 目标字段 | 类型 | OTT 分支逻辑 (indoor_flag = -1) | MR 分支逻辑 (indoor_flag = 0/1) | 缺省处理 |
| :--- | :--- | :--- | :--- | :--- |
| **`building_id`** | BIGINT | 来自桥接表 | 来自桥接表 | - |
| **`data_type`** | INTEGER | 原始值 (1/2) | 固定值 -1 | - |
| **`indoor_flag`** | SMALLINT | 固定值 -1 | 原始值 (0 或 1) | - |
| **`user_cnt`** | BIGINT | `approx_count_distinct(device_id_list)` | **0** | **必须执行去重** |
| **`avgrsrp`** | DECIMAL | `SUM(totalrsrp) / SUM(rsrpcount)` | `SUM(totalrsrp) / SUM(rsrpcount)` | - |
| **`building_type`** | VARCHAR | **根据 specs\build_type_specs.md 判定** | **NULL** | 映射至标准 Key |
| **`mr_grid_count`** | BIGINT | `COUNT(DISTINCT regionid)` | **楼宇内有采样栅格总数** |
| **`covered_grid_count_105`**| BIGINT | `SUM(is_covered_105)` | **楼宇内达标栅格总数** (-105) |
| **`covered_grid_count_110`**| BIGINT | `SUM(is_covered_110)` | **楼宇内达标栅格总数** (-110) |
| **`grid_cover_rate_105`**| DECIMAL | `covered_grid_count_105 / mr_grid_count` | **楼宇级栅格达标率** (-105) |
| **`grid_cover_rate_110`**| DECIMAL | `covered_grid_count_110 / mr_grid_count` | **楼宇级栅格达标率** (-110) |
| **`top1_cellkey`** | VARCHAR | 关联 `td_building_cell_m` 获取 | 关联 `td_building_cell_m` 获取 | - |
## 4. 关键计算原语 (Primitives)
- **等值关联**`ON a.regionid = b.regionid AND a.indoor_flag = b.indoor_flag AND a.data_type = b.data_type`
- **楼宇分类逻辑**:智能体需实现全套 `CASE WHEN` 判别逻辑。
- **指标聚合**严格基于原始累加值total进行 SUM 聚合。
## 5. 存储与优化规范
- 将计算结果同步入库 PG `tm_building_coverage_m`
- 忽略市场份额、高价值、VIP 字段。