20260712_crm_opportunity_follow_count_backfill.sql 674 B

12345678910111213141516171819
  1. -- 修复商机 follow_count 与跟进记录数不一致(历史数据回填)
  2. -- 原因:创建跟进时 recalc 发生在 flush 之前,导致冗余字段长期少 1
  3. UPDATE crm_opportunity o
  4. LEFT JOIN (
  5. SELECT opportunity_id, COUNT(*) AS cnt
  6. FROM crm_opportunity_follow
  7. WHERE del_flag = 0
  8. GROUP BY opportunity_id
  9. ) f ON f.opportunity_id = o.id
  10. SET o.follow_count = IFNULL(f.cnt, 0),
  11. o.last_time = (
  12. SELECT MAX(COALESCE(f2.follow_time, f2.create_time))
  13. FROM crm_opportunity_follow f2
  14. WHERE f2.opportunity_id = o.id
  15. AND f2.del_flag = 0
  16. )
  17. WHERE o.del_flag = 0
  18. AND IFNULL(o.follow_count, 0) <> IFNULL(f.cnt, 0);