有以下两张表:
CREATE TABLE dws_ltc_activity
(
id
varchar(200) NOT NULL,
ltc_activity_stage
varchar(50) NOT NULL COMMENT '当前活动归属于LTC的哪个阶段。5:出席(重度)。10:签单。如果未来有子阶段可以用5.1、5.2等表示。此字段非常重要,用以识别业务阶段。如果该值发生变化,需要刷新数据,因为和id有关。',
previous_ltc_activity_id
varchar(200) DEFAULT NULL COMMENT '上个活动的归属',
leads_id
bigint NOT NULL,
cc_id
bigint DEFAULT NULL,
cc_name
varchar(20) DEFAULT NULL COMMENT '所属cc的名字',
teacher_id
bigint DEFAULT NULL,
attend_demo_course_id
bigint DEFAULT NULL COMMENT '试听课id',
attend_demo_course_start_time
datetime DEFAULT NULL,
attend_demo_course_end_time
datetime DEFAULT NULL,
attend_demo_course_name
varchar(100) DEFAULT NULL,
attend_time_span
smallint DEFAULT NULL,
attend_status
smallint DEFAULT NULL,
attend_course_time
datetime DEFAULT NULL,
order_id
bigint DEFAULT NULL COMMENT '订单id',
order_type
varchar(20) DEFAULT NULL,
actual_pay_amount
decimal(20,2) DEFAULT NULL COMMENT '实付金额',
activity_time
datetime NOT NULL COMMENT '指该活动被记录在该阶段时所归属的时间。比如签单活动,即为签约时间。',
_ts
timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id
)
)
CREATE TABLE fact_ltc_actual_signing
(
id
bigint NOT NULL,
leads_id
bigint DEFAULT NULL,
order_id
bigint DEFAULT NULL COMMENT '订单id',
order_type
varchar(20) DEFAULT NULL,
sign_time
datetime DEFAULT NULL COMMENT '实际签约时间。业务上将用户完成实际支付作为签约时间。',
actual_pay_amount
decimal(20,2) DEFAULT NULL COMMENT '实付金额',
cc_id
bigint DEFAULT NULL COMMENT '所属cc的id',
cc_name
varchar(20) DEFAULT NULL COMMENT '所属cc的名字',
_ts
timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id
)
)
写一句sql,从fact_ltc_actual_signing查询sign_time在‘2022-1-1’和‘2023-1-1’之间的记录,并增加previous_ltc_activity_id字段,该字段等于依据leads_id从dws_ltc_activity查出ltc_activity_stage=‘5’且activity_time是<sign_time中最大值那条记录的id
网友评论