feat: 优化查询效率
This commit is contained in:
parent
a88fc1a16d
commit
fdd52f380d
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user