SELECT
tag,
'2021-10-01' AS dt,
SUM(like_cnt) AS sum_like_cnt_7d,
MAX(retweet_cnt) AS max_retweet_cnt_td
FROM(
SELECT
tag,
DATE(end_time) AS days,
SUM(if_like) AS like_cnt,
SUM(if_retweet) AS retweet_cnt
FROM tb_user_video_log t1
JOIN tb_video_info t2 ON t1.video_id = t2.video_id
GROUP BY tag, days
) t1
WHERE days BETWEEN DATE_ADD('2021-10-01', INTERVAL -6 DAY) AND '2021-10-01'
GROUP BY tag
UNION
SELECT
tag,
'2021-10-02' AS dt,
SUM(like_cnt) AS sum_like_cnt_7d,
MAX(retweet_cnt) AS max_retweet_cnt_td
FROM(
SELECT
tag,
DATE(end_time) AS days,
SUM(if_like) AS like_cnt,
SUM(if_retweet) AS retweet_cnt
FROM tb_user_video_log t1
JOIN tb_video_info t2 ON t1.video_id = t2.video_id
GROUP BY tag, days
) t1
WHERE days BETWEEN DATE_ADD('2021-10-02', INTERVAL -6 DAY) AND '2021-10-02'
GROUP BY tag
UNION
SELECT
tag,
'2021-10-03' AS dt,
SUM(like_cnt) AS sum_like_cnt_7d,
MAX(retweet_cnt) AS max_retweet_cnt_td
FROM(
SELECT
tag,
DATE(end_time) AS days,
SUM(if_like) AS like_cnt,
SUM(if_retweet) AS retweet_cnt
FROM tb_user_video_log t1
JOIN tb_video_info t2 ON t1.video_id = t2.video_id
GROUP BY tag, days
) t1
WHERE days BETWEEN DATE_ADD('2021-10-03', INTERVAL -6 DAY) AND '2021-10-03'
GROUP BY tag
ORDER BY tag DESC
用UNION把三天的记录合并起来,虽然是比较笨的方法,但至少算是个能轻易看懂的办法吧,,

京公网安备 11010502036488号