feat: 优化查询效率

This commit is contained in:
cjy 2026-04-27 19:39:48 +08:00
parent a88fc1a16d
commit fdd52f380d

View File

@ -89,9 +89,9 @@ newest_month AS (
active_windows AS (
SELECT
u.id AS user_id,
u.tel_num AS phone,
u.tel_num COLLATE utf8mb4_0900_ai_ci AS phone,
bor.uuid AS order_uuid,
bor.customer_num,
bor.customer_num COLLATE utf8mb4_0900_ai_ci AS customer_num,
bb.start_at,
bb.expired_at,
bb.bundle_video_number, bb.bundle_limit_video_number, bb.bundle_limit_video_expired_number,
@ -106,7 +106,7 @@ active_windows AS (
bb.bundle_competitive_number, bb.bundle_limit_competitive_number, bb.bundle_limit_competitive_expired_number,
bb.increase_competitive_number, bb.increase_limit_competitive_number, bb.increase_limit_competitive_expired_number,
bb.manual_competitive_number, bb.manual_competitive_consumption_number,
rn.name AS user_name
rn.name COLLATE utf8mb4_0900_ai_ci AS user_name
FROM ` + "`micro-account`.`user`" + ` u
INNER JOIN ` + "`micro-account`.real_name" + ` rn ON rn.id = u.real_name_id AND rn.name IS NOT NULL AND rn.deleted_at = 0
INNER JOIN bundle_activate bc ON bc.user_id = u.id AND bc.activate = 2
@ -188,7 +188,7 @@ cw_agg AS (
COUNT(CASE WHEN cw.work_category = 2 AND cw.cost = 1 AND cw.deleted_at = 0 AND (cw.origin_uuid = '' OR cw.origin_uuid IS NULL) AND cw.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS released_video_consumed,
COUNT(CASE WHEN cw.work_category = 1 AND cw.cost = 1 AND cw.deleted_at = 0 AND (cw.origin_uuid = '' OR cw.origin_uuid IS NULL) AND cw.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS released_post_consumed
FROM active_windows aw
LEFT JOIN cast_work cw ON cw.artist_phone COLLATE utf8mb4_general_ci = aw.phone COLLATE utf8mb4_general_ci
LEFT JOIN cast_work cw ON cw.artist_phone = aw.phone
GROUP BY aw.user_id
),
@ -199,7 +199,7 @@ cwa_agg AS (
COUNT(CASE WHEN cwa.deleted_at = 0 AND cwa.work_analysis_status != 1 AND cwa.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS uploaded_data_count,
COUNT(CASE WHEN cwa.cost = 1 AND cwa.deleted_at = 0 AND cwa.work_analysis_status != 1 AND cwa.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS released_data_consumed
FROM active_windows aw
LEFT JOIN cast_work_analysis cwa ON cwa.artist_phone COLLATE utf8mb4_general_ci = aw.phone COLLATE utf8mb4_general_ci
LEFT JOIN cast_work_analysis cwa ON cwa.artist_phone = aw.phone
GROUP BY aw.user_id
),
@ -210,7 +210,7 @@ ccr_agg AS (
COUNT(CASE WHEN ccr.deleted_at = 0 AND ccr.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS uploaded_report_count,
COUNT(CASE WHEN ccr.cost = 1 AND ccr.deleted_at = 0 AND ccr.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS released_report_consumed
FROM active_windows aw
LEFT JOIN cast_competitive_report ccr ON ccr.artist_phone COLLATE utf8mb4_general_ci = aw.phone COLLATE utf8mb4_general_ci
LEFT JOIN cast_competitive_report ccr ON ccr.artist_phone = aw.phone
GROUP BY aw.user_id
),
@ -220,7 +220,7 @@ cvs_agg AS (
aw.user_id,
COUNT(cvs.artist_uuid) AS uploaded_video_script_count
FROM active_windows aw
LEFT JOIN cast_video_script cvs ON CAST(aw.user_id AS CHAR) COLLATE utf8mb4_general_ci = cvs.artist_uuid COLLATE utf8mb4_general_ci
LEFT JOIN cast_video_script cvs ON CAST(aw.user_id AS CHAR) = cvs.artist_uuid
AND cvs.deleted_at = 0
AND cvs.created_at BETWEEN UNIX_TIMESTAMP(CONVERT_TZ(aw.start_at, '+00:00', '+00:00'))
AND UNIX_TIMESTAMP(CONVERT_TZ(aw.expired_at, '+00:00', '+00:00'))
@ -234,7 +234,7 @@ tar_agg AS (
COUNT(CASE WHEN tar.status = 1 AND tar.deleted_at = 0 AND tar.created_at BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS progress_task_count,
COUNT(CASE WHEN tar.status = 2 AND tar.deleted_at = 0 AND tar.created_at BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS complete_task_count
FROM active_windows aw
LEFT JOIN ` + "`" + taskSchema + "`" + `.task_assign_records tar ON tar.sub_num COLLATE utf8mb4_general_ci = aw.customer_num COLLATE utf8mb4_general_ci
LEFT JOIN ` + "`" + taskSchema + "`" + `.task_assign_records tar ON tar.sub_num = aw.customer_num
GROUP BY aw.user_id
),
@ -273,7 +273,7 @@ assigned_pending_agg AS (
END
), 0) AS assigned_report_count
FROM active_windows aw
LEFT JOIN ` + "`" + taskSchema + "`" + `.task_assign_records tar ON tar.sub_num COLLATE utf8mb4_general_ci = aw.customer_num COLLATE utf8mb4_general_ci
LEFT JOIN ` + "`" + taskSchema + "`" + `.task_assign_records tar ON tar.sub_num = aw.customer_num
AND tar.actual_status IN (1, 3)
AND tar.deleted_at = 0
AND tar.created_at BETWEEN aw.start_at AND aw.expired_at
@ -474,16 +474,16 @@ newest_month AS (
active_windows AS (
SELECT
u.id AS user_id,
u.tel_num AS phone,
u.tel_num COLLATE utf8mb4_0900_ai_ci AS phone,
bor.uuid AS order_uuid,
bor.customer_num,
bor.customer_num COLLATE utf8mb4_0900_ai_ci AS customer_num,
bb.start_at,
bb.expired_at,
bb.manual_video_number, bb.manual_video_consumption_number,
bb.manual_image_number, bb.manual_image_consumption_number,
bb.manual_data_analysis_number, bb.manual_data_analysis_consumption_number,
bb.manual_competitive_number, bb.manual_competitive_consumption_number,
rn.name AS user_name
rn.name COLLATE utf8mb4_0900_ai_ci AS user_name
FROM ` + "`micro-account`.`user`" + ` u
INNER JOIN ` + "`micro-account`.real_name" + ` rn ON rn.id = u.real_name_id AND rn.name IS NOT NULL AND rn.deleted_at = 0
INNER JOIN bundle_activate bc ON bc.user_id = u.id AND bc.activate = 2
@ -563,7 +563,7 @@ cw_agg AS (
COUNT(CASE WHEN cw.work_category = 2 AND cw.deleted_at = 0 AND (cw.origin_uuid = '' OR cw.origin_uuid IS NULL) AND cw.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS uploaded_video_count,
COUNT(CASE WHEN cw.work_category = 1 AND cw.deleted_at = 0 AND (cw.origin_uuid = '' OR cw.origin_uuid IS NULL) AND cw.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS uploaded_post_count
FROM active_windows aw
LEFT JOIN cast_work cw ON cw.artist_phone COLLATE utf8mb4_general_ci = aw.phone COLLATE utf8mb4_general_ci
LEFT JOIN cast_work cw ON cw.artist_phone = aw.phone
GROUP BY aw.user_id
),
@ -573,7 +573,7 @@ cwa_agg AS (
aw.user_id,
COUNT(CASE WHEN cwa.deleted_at = 0 AND cwa.work_analysis_status != 1 AND cwa.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS uploaded_data_count
FROM active_windows aw
LEFT JOIN cast_work_analysis cwa ON cwa.artist_phone COLLATE utf8mb4_general_ci = aw.phone COLLATE utf8mb4_general_ci
LEFT JOIN cast_work_analysis cwa ON cwa.artist_phone = aw.phone
GROUP BY aw.user_id
),
@ -583,7 +583,7 @@ ccr_agg AS (
aw.user_id,
COUNT(CASE WHEN ccr.deleted_at = 0 AND ccr.submit_time BETWEEN aw.start_at AND aw.expired_at THEN 1 END) AS uploaded_report_count
FROM active_windows aw
LEFT JOIN cast_competitive_report ccr ON ccr.artist_phone COLLATE utf8mb4_general_ci = aw.phone COLLATE utf8mb4_general_ci
LEFT JOIN cast_competitive_report ccr ON ccr.artist_phone = aw.phone
GROUP BY aw.user_id
),
@ -593,7 +593,7 @@ cvs_agg AS (
aw.user_id,
COUNT(cvs.artist_uuid) AS uploaded_video_script_count
FROM active_windows aw
LEFT JOIN cast_video_script cvs ON CAST(aw.user_id AS CHAR) COLLATE utf8mb4_general_ci = cvs.artist_uuid COLLATE utf8mb4_general_ci
LEFT JOIN cast_video_script cvs ON CAST(aw.user_id AS CHAR) = cvs.artist_uuid
AND cvs.deleted_at = 0
AND cvs.created_at BETWEEN UNIX_TIMESTAMP(CONVERT_TZ(aw.start_at, '+00:00', '+00:00'))
AND UNIX_TIMESTAMP(CONVERT_TZ(aw.expired_at, '+00:00', '+00:00'))
@ -635,7 +635,7 @@ assigned_pending_agg AS (
END
), 0) AS assigned_report_count
FROM active_windows aw
LEFT JOIN ` + "`" + taskSchema + "`" + `.task_assign_records tar ON tar.sub_num COLLATE utf8mb4_general_ci = aw.customer_num COLLATE utf8mb4_general_ci
LEFT JOIN ` + "`" + taskSchema + "`" + `.task_assign_records tar ON tar.sub_num = aw.customer_num
AND tar.actual_status IN (1, 3)
AND tar.deleted_at = 0
AND tar.created_at BETWEEN aw.start_at AND aw.expired_at