SELECT content_id, content_type, content_title, interaction_count, like_count, comment_count,
share_count, audit_status, audit_time, publish_time, status
FROM analytics_content_stat_history
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
UNION ALL
SELECT content_id, content_type, content_title, interaction_count, like_count, comment_count,
share_count, audit_status, audit_time, publish_time, status
FROM analytics_content_stat_today
WHERE #{endDate} >= CURDATE()
AND #{startDate} <= CURDATE()
SELECT COALESCE(SUM(content_publish_count), 0) AS publishCount,
COALESCE(SUM(content_interaction_count), 0) AS interactionCount,
COALESCE(SUM(audit_submit_count), 0) AS auditSubmitCount,
COALESCE(SUM(audit_pass_count), 0) AS auditPassCount,
COALESCE(SUM(audit_reject_count), 0) AS auditRejectCount
FROM analytics_daily_summary
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
SELECT content_type AS code,
COUNT(DISTINCT content_id) AS cnt
FROM (
) t
WHERE publish_time IS NOT NULL
GROUP BY content_type
ORDER BY cnt DESC
SELECT stat_date AS statDate,
DATE_FORMAT(stat_date, '%m-%d') AS label,
COALESCE(audit_submit_count, 0) AS submitCount,
COALESCE(audit_pass_count, 0) AS passCount,
COALESCE(audit_reject_count, 0) AS rejectCount
FROM analytics_daily_summary
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
ORDER BY stat_date ASC
SELECT content_id AS contentId,
MAX(content_title) AS contentTitle,
SUM(interaction_count) AS interactionCount,
SUM(like_count) AS likeCount,
SUM(comment_count) AS commentCount,
SUM(share_count) AS shareCount
FROM (
) t
GROUP BY content_id, content_type
ORDER BY interactionCount DESC
LIMIT 10
SELECT t.content_id AS contentId,
t.content_type AS contentType,
t.content_title AS contentTitle,
t.audit_time AS auditTime,
t.status,
t.audit_status AS auditStatus
FROM (
SELECT content_id, content_type, content_title, audit_time, status, audit_status
FROM analytics_content_stat_history
WHERE audit_status = 1
AND audit_time >= #{startTime}
AND audit_time < #{endTime}
UNION ALL
SELECT content_id, content_type, content_title, audit_time, status, audit_status
FROM analytics_content_stat_today
WHERE audit_status = 1
AND audit_time >= #{startTime}
AND audit_time < #{endTime}
) t
INNER JOIN (
SELECT content_id, MAX(audit_time) AS max_audit_time
FROM (
SELECT content_id, audit_time
FROM analytics_content_stat_history
WHERE audit_status = 1
AND audit_time >= #{startTime}
AND audit_time < #{endTime}
UNION ALL
SELECT content_id, audit_time
FROM analytics_content_stat_today
WHERE audit_status = 1
AND audit_time >= #{startTime}
AND audit_time < #{endTime}
) u
GROUP BY content_id
) latest ON t.content_id = latest.content_id AND t.audit_time = latest.max_audit_time
ORDER BY t.audit_time DESC