select
product_id,
product_name,
sum(quantity) as total_quantity,
round(average_rating, 2) as average_rating
from
sales_underline
left join products_underline using (product_id)
join (
select
product_id,
avg(rating) as average_rating
from
reviews_underline
group by
product_id
having
average_rating <= 4
) as t using (product_id)
group by
product_id,
product_name
order by
average_rating ASC,
product_id ASC;
看了很多其他同学的解法,我真的想说,无脑联成宽表丝毫不考虑笛卡尔积还有滥用临时表,在实际大数据量情况下代码表现通常都很糟糕,不要以为系统给你过了就是对的,希望大家多多精进,少写慢sql



京公网安备 11010502036488号