USE zhiyuantong; SET NAMES utf8mb4; -- 逐省核对六类2025业务数据量,以及来源缺失的关键值数量。 SELECT scopes.province_name, COALESCE(plan_rows.record_count, 0) AS major_plan_count, COALESCE(plan_rows.missing_value_count, 0) AS plan_count_missing, COALESCE(group_rows.record_count, 0) AS group_count, COALESCE(cutoff_rows.record_count, 0) AS cutoff_line_count, COALESCE(cutoff_rows.missing_value_count, 0) AS cutoff_score_missing, COALESCE(major_rows.record_count, 0) AS major_line_count, COALESCE(major_rows.missing_value_count, 0) AS min_score_missing, COALESCE(score_rows.record_count, 0) AS score_point_count, COALESCE(control_rows.record_count, 0) AS control_line_count, scopes.collection_status FROM collection_scopes scopes LEFT JOIN ( SELECT groups_.province_name, COUNT(*) record_count, SUM(plans.plan_count IS NULL) missing_value_count FROM admission_major_plans plans JOIN admission_groups groups_ ON groups_.admission_group_id=plans.admission_group_id WHERE groups_.admission_year=2025 GROUP BY groups_.province_name ) plan_rows ON plan_rows.province_name=scopes.province_name LEFT JOIN ( SELECT province_name, COUNT(*) record_count FROM admission_groups WHERE admission_year=2025 GROUP BY province_name ) group_rows ON group_rows.province_name=scopes.province_name LEFT JOIN ( SELECT province_name, COUNT(*) record_count, SUM(cutoff_score IS NULL) missing_value_count FROM admission_cutoff_lines WHERE admission_year=2025 GROUP BY province_name ) cutoff_rows ON cutoff_rows.province_name=scopes.province_name LEFT JOIN ( SELECT province_name, COUNT(*) record_count, SUM(min_score IS NULL) missing_value_count FROM admission_major_lines WHERE admission_year=2025 GROUP BY province_name ) major_rows ON major_rows.province_name=scopes.province_name LEFT JOIN ( SELECT province_name, COUNT(*) record_count FROM score_rank_points WHERE admission_year=2025 GROUP BY province_name ) score_rows ON score_rows.province_name=scopes.province_name LEFT JOIN ( SELECT province_name, COUNT(*) record_count FROM control_score_lines WHERE admission_year=2025 GROUP BY province_name ) control_rows ON control_rows.province_name=scopes.province_name WHERE scopes.admission_year=2025 ORDER BY scopes.province_name; -- 所有GaokaoCompass来源文件都应留存哈希与本地路径。 SELECT COUNT(*) AS source_file_count, SUM(sha256 IS NULL OR sha256='') AS missing_hash_count, SUM(raw_file_path IS NULL OR raw_file_path='') AS missing_local_path_count FROM data_sources WHERE source_type='open_dataset_csv' AND publisher='GaokaoCompass'; -- 暂存表应在成功导入后归零。 SELECT (SELECT COUNT(*) FROM stg_gc_enrollment_plans) + (SELECT COUNT(*) FROM stg_gc_school_admissions) + (SELECT COUNT(*) FROM stg_gc_major_admissions) + (SELECT COUNT(*) FROM stg_gc_score_ranges) AS staging_row_count;