WITH t1 AS(
SELECT product_id,sum(quantity) total_quantity
FROM sales_underline
GROUP BY product_id
),
t2 AS(
SELECT product_id,round(avg(rating),2) average_rating
FROM reviews_underline
GROUP BY product_id
)
SELECT a.product_id,a.product_name,t1.total_quantity,t2.average_rating
FROM products_underline AS a
INNER JOIN t1 ON a.product_id = t1.product_id
INNER JOIN t2 ON a.product_id = t2.product_id
WHERE t2.average_rating < 4
ORDER BY average_rating ASC,product_id ASC
我的方法可能比较繁琐,我是先将下面两个表的数据聚合计算出平均分和售出总数,然后再将三个表连结选出符合条件的列

京公网安备 11010502036488号