with lastest_rate_date as (
select
user_id,
max(date(review_date)) as latest_review_date
from
content_reviews
group by user_id
),
average_rate as (
select
user_id,
round(avg(rating),2) as average_rating
from
content_reviews
where course_id='DS-102'
group by user_id
),
user_number as (
select distinct
user_id
from
course_completions
where course_id='DS-102'
and date_format(completion_date,'%m')='03'
)
select
u.user_id,
average_rating,
case when average_rating>=4 then '优质反馈学员' else '普通反馈学员' end
as feedback_type,
latest_review_date
from
user_number u
inner join
average_rate a on u.user_id=a.user_id
inner join
lastest_rate_date r on u.user_id=r.user_id
order by feedback_type desc,average_rating desc,user_id;