feat: Flyway 迁移脚本更新课程包统计数据
V10__update_course_package_stats.sql: - 根据 lesson 表实际数据更新 usage_count (status != 'cancelled') - 根据 lesson 表实际数据更新 teacher_count (status = 'completed' 去重教师)
This commit is contained in:
parent
4ec61e48ca
commit
27cb883b23
@ -0,0 +1,37 @@
|
|||||||
|
-- -----------------------------------------------------
|
||||||
|
-- V10: 更新课程包统计数据
|
||||||
|
-- 说明:根据 lesson 表实际数据更新 course_package 的 usage_count 和 teacher_count
|
||||||
|
-- 时间:2026-03-20
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
|
||||||
|
-- 1. 更新 usage_count:统计 status != 'cancelled' 的课程数
|
||||||
|
UPDATE course_package cp
|
||||||
|
SET usage_count = (
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM lesson l
|
||||||
|
WHERE l.course_id = cp.id
|
||||||
|
AND l.status != 'cancelled'
|
||||||
|
AND l.deleted = 0
|
||||||
|
)
|
||||||
|
WHERE cp.deleted = 0;
|
||||||
|
|
||||||
|
-- 2. 更新 teacher_count:统计 status = 'completed' 的课程中去重教师数
|
||||||
|
UPDATE course_package cp
|
||||||
|
SET teacher_count = (
|
||||||
|
SELECT COUNT(DISTINCT l.teacher_id)
|
||||||
|
FROM lesson l
|
||||||
|
WHERE l.course_id = cp.id
|
||||||
|
AND l.status = 'completed'
|
||||||
|
AND l.teacher_id IS NOT NULL
|
||||||
|
AND l.deleted = 0
|
||||||
|
)
|
||||||
|
WHERE cp.deleted = 0;
|
||||||
|
|
||||||
|
-- 3. 处理 NULL 值,确保字段为 0 而不是 NULL
|
||||||
|
UPDATE course_package cp
|
||||||
|
SET usage_count = 0
|
||||||
|
WHERE usage_count IS NULL AND deleted = 0;
|
||||||
|
|
||||||
|
UPDATE course_package cp
|
||||||
|
SET teacher_count = 0
|
||||||
|
WHERE teacher_count IS NULL AND deleted = 0;
|
||||||
Loading…
Reference in New Issue
Block a user