WITH base AS(
SELECT
a.user_id,
a.course_id,
ROUND(AVG(b.rating),2) AS average_rating,
CASE
WHEN ROUND(AVG(b.rating),2)>=4.0 THEN '优质反馈学员'
ELSE '普通反馈学员'
END AS feedback_type
FROM course_completions a
JOIN content_reviews b ON a.user_id=b.user_id
WHERE b.review_date>='2025-03-01' AND b.review_date<'2025-04-01' AND a.course_id='DS-102'
GROUP BY a.user_id
),
base1 AS(
SELECT user_id,
MAX(review_date) as latest_review_date
FROM content_reviews
GROUP BY user_id
)
SELECT
base.user_id,
base.average_rating,
base.feedback_type,
DATE(base1.latest_review_date) AS latest_review_date
FROM base
JOIN base1 ON base.user_id=base1.user_id
ORDER BY base.feedback_type DESC, base.average_rating DESC, base.user_id ASC