insert into fs_stats_member_daily
(
stat_date,user_id,nick_name,real_name,phone,tag,company_group_id,company_id,company_name,company_user_id,company_user_name,
train_camp_id,train_camp_name,period_id,period_name,course_id,course_name,video_id,video_name,is_over,watch_count,watch_duration,
answer_count,answer_correct_count,red_packet_count,red_packet_amount
)
select
#{date} as stat_date,
u.user_id as user_id,
u.nickname as nick_name,
u.real_name as real_name,
u.phone as phone,
concat_ws(',', t.tag) as tag,
null as company_group_id,
c.company_id as company_id,
c.company_name as company_name,
cu.user_id as company_user_id,
cu.nick_name as company_user_name,
uctc.training_camp_id as train_camp_id,
uctc.training_camp_name as train_camp_name,
ucp.period_id as period_id,
ucp.period_name as period_name,
uc.course_id as course_id,
uc.course_name as course_name,
ucv.video_id as video_id,
ucv.title as video_name,
max(case when cwl.log_type = 2 then 1 else 0 end)
as is_over,
count(cwl.log_id) as watch_count,
sum(cwl.duration) as watch_duration,
count(cal.log_id) as answer_count,
count(case when cal.is_right = 1 then cal.log_id end)
as answer_correct_count,
count(crpl.log_id) as red_packet_count,
ifnull(sum(crpl.amount),0) as red_packet_amount
from fs_course_watch_log cwl
inner join fs_user u on u.user_id = cwl.user_id
left join company_tag_user ctu on ctu.company_id = cwl.company_id and ctu.company_user_id = cwl.company_user_id and ctu.user_id = cwl.user_id
left join company_tag t on FIND_IN_SET(t.tag_id, ctu.tag_ids)
left join fs_user_course_period ucp on ucp.period_id = cwl.period_id
left join fs_user_course_training_camp uctc on uctc.training_camp_id = ucp.training_camp_id
left join company c on c.company_id = cwl.company_id
left join company_user cu on cu.company_id = cwl.company_id and cu.user_id = cwl.company_user_id
left join fs_user_course uc on uc.course_id = cwl.course_id
left join fs_user_course_video ucv on ucv.course_id = cwl.course_id and ucv.video_id = cwl.video_id
left join fs_course_answer_logs cal on cal.watch_log_id = cwl.log_id
left join fs_course_red_packet_log crpl on crpl.watch_log_id = cwl.log_id
= #{date} and cwl.create_time < date_add(#{date}, interval 1 day)
]]>
group by
cwl.user_id,
cwl.company_id,
cwl.company_user_id,
ucp.training_camp_id,
cwl.period_id,
cwl.course_id,
cwl.video_id
on duplicate key update
nick_name = values(nick_name),
real_name = values(real_name),
phone = values(phone),
tag = values(tag),
company_name = values(company_name),
company_user_name = values(company_user_name),
train_camp_name = values(train_camp_name),
period_name = values(period_name),
course_name = values(course_name),
video_name = values(video_name),
is_over = values(is_over),
watch_count = values(watch_count),
watch_duration = values(watch_duration),
answer_count = values(answer_count),
answer_correct_count = values(answer_correct_count),
red_packet_count = values(red_packet_count),
red_packet_amount = values(red_packet_amount)