Blame view

项目文档相关/sql/添加转化率统计关联字段.sql 5.36 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  -- ============================================
  -- 为转化率统计添加关联字段
  -- ============================================
  -- 说明:此脚本为转化率统计功能添加关联字段,用于追踪邀约→预约→开单/耗卡的完整业务链路
  -- 执行顺序:按照业务链路顺序依次执行
  -- 
  -- 业务链路:
  -- 邀约记录 (lq_yaoyjl)  预约记录 (lq_yyjl)  开单记录 (lq_kd_kdjlb) / 耗卡记录 (lq_xh_hyhk)
  -- 
  -- 字段说明:
  -- 1. lq_yyjl.F_InviteId:关联邀约记录ID,用于统计邀约→预约转化率
  -- 2. lq_kd_kdjlb.F_AppointmentId:关联预约记录ID,用于统计预约→开单转化率
  -- 3. lq_xh_hyhk.F_AppointmentId:关联预约记录ID,用于统计预约→耗卡转化率
  -- 
  -- 注意事项:
  -- - 所有字段允许为NULL,因为历史数据可能没有这些关联
  -- - 字段类型为VARCHAR(50),与其他ID字段保持一致
  -- - 已为所有字段创建索引,以优化查询性能
  
  -- ============================================
  -- 1. lq_yyjl(预约记录表) - 添加邀约ID字段和未成交说明字段
  -- ============================================
  -- 说明:关联邀约记录,用于统计邀约→预约转化率
  ALTER TABLE lq_yyjl 
  ADD COLUMN F_InviteId VARCHAR(50) NULL COMMENT '邀约记录ID(关联lq_yaoyjl.F_Id,用于统计邀约→预约转化率)' AFTER F_Status,
  ADD COLUMN F_NoDealRemark VARCHAR(2000) NULL COMMENT '未成交说明' AFTER F_InviteId;
  
  -- 创建索引以优化查询性能
  CREATE INDEX idx_yyjl_invite_id ON lq_yyjl(F_InviteId);
  
  -- ============================================
  -- 2. lq_kd_kdjlb(开单记录表) - 添加预约ID字段
  -- ============================================
  -- 说明:关联预约记录,用于统计预约→开单转化率
  ALTER TABLE lq_kd_kdjlb 
  ADD COLUMN F_AppointmentId VARCHAR(50) NULL COMMENT '预约记录ID(关联lq_yyjl.F_Id,用于统计预约→开单转化率)' AFTER F_ActivityId;
  
  -- 创建索引以优化查询性能
  CREATE INDEX idx_kdjlb_appointment_id ON lq_kd_kdjlb(F_AppointmentId);
  
  -- ============================================
  -- 3. lq_xh_hyhk(耗卡记录表) - 添加预约ID字段
  -- ============================================
  -- 说明:关联预约记录,用于统计预约→耗卡转化率
  ALTER TABLE lq_xh_hyhk 
  ADD COLUMN F_AppointmentId VARCHAR(50) NULL COMMENT '预约记录ID(关联lq_yyjl.F_Id,用于统计预约→耗卡转化率)' AFTER F_OvertimeSgfy;
  
  -- 创建索引以优化查询性能
  CREATE INDEX idx_hyhk_appointment_id ON lq_xh_hyhk(F_AppointmentId);
  
  -- ============================================
  -- 4. 验证字段创建
  -- ============================================
  -- 验证 lq_yyjl 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_yyjl' 
  --   AND (COLUMN_NAME = 'F_InviteId' OR COLUMN_NAME = 'F_NoDealRemark');
  
  -- 验证 lq_kd_kdjlb 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_kd_kdjlb' 
  --   AND COLUMN_NAME = 'F_AppointmentId';
  
  -- 验证 lq_xh_hyhk 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_xh_hyhk' 
  --   AND COLUMN_NAME = 'F_AppointmentId';
  
  -- ============================================
  -- 5. 验证索引创建
  -- ============================================
  -- 验证索引
  -- SHOW INDEX FROM lq_yyjl WHERE Key_name = 'idx_yyjl_invite_id';
  -- SHOW INDEX FROM lq_kd_kdjlb WHERE Key_name = 'idx_kdjlb_appointment_id';
  -- SHOW INDEX FROM lq_xh_hyhk WHERE Key_name = 'idx_hyhk_appointment_id';
  
  -- ============================================
  -- 6. 转化率统计示例SQL(供参考)
  -- ============================================
  -- 示例1:邀约→预约转化率
  -- SELECT 
  --     COUNT(DISTINCT yyjl.F_Id) AS 预约数量,
  --     COUNT(DISTINCT yyjl.F_InviteId) AS 来自邀约的预约数量,
  --     COUNT(DISTINCT yyjl.F_InviteId) * 100.0 / COUNT(DISTINCT yyjl.F_Id) AS 转化率百分比
  -- FROM lq_yyjl yyjl
  -- WHERE yyjl.F_CreateTime >= '2024-01-01';
  
  -- 示例2:预约→开单转化率
  -- SELECT 
  --     COUNT(DISTINCT yyjl.F_Id) AS 预约数量,
  --     COUNT(DISTINCT kdjlb.F_Id) AS 开单数量,
  --     COUNT(DISTINCT kdjlb.F_Id) * 100.0 / COUNT(DISTINCT yyjl.F_Id) AS 转化率百分比
  -- FROM lq_yyjl yyjl
  -- LEFT JOIN lq_kd_kdjlb kdjlb ON kdjlb.F_AppointmentId = yyjl.F_Id AND kdjlb.F_IsEffective = 1
  -- WHERE yyjl.F_CreateTime >= '2024-01-01';
  
  -- 示例3:预约→耗卡转化率
  -- SELECT 
  --     COUNT(DISTINCT yyjl.F_Id) AS 预约数量,
  --     COUNT(DISTINCT hyhk.F_Id) AS 耗卡数量,
  --     COUNT(DISTINCT hyhk.F_Id) * 100.0 / COUNT(DISTINCT yyjl.F_Id) AS 转化率百分比
  -- FROM lq_yyjl yyjl
  -- LEFT JOIN lq_xh_hyhk hyhk ON hyhk.F_AppointmentId = yyjl.F_Id AND hyhk.F_IsEffective = 1
  -- WHERE yyjl.F_CreateTime >= '2024-01-01';
  
  -- 示例4:邀约→开单转化率(跨步转化)
  -- SELECT 
  --     COUNT(DISTINCT yaoyjl.F_Id) AS 邀约数量,
  --     COUNT(DISTINCT kdjlb.F_Id) AS 开单数量,
  --     COUNT(DISTINCT kdjlb.F_Id) * 100.0 / COUNT(DISTINCT yaoyjl.F_Id) AS 转化率百分比
  -- FROM lq_yaoyjl yaoyjl
  -- LEFT JOIN lq_yyjl yyjl ON yyjl.F_InviteId = yaoyjl.F_Id
  -- LEFT JOIN lq_kd_kdjlb kdjlb ON kdjlb.F_AppointmentId = yyjl.F_Id AND kdjlb.F_IsEffective = 1
  -- WHERE yaoyjl.F_CreateTime >= '2024-01-01';