【背景】:电商平台需要对商品的销售和评价情况进行综合分析,以优化商品推荐和运营策略。 【原始表】: products_underline (商品)表: product_id (商品 ID): 商品的唯一标识符,INT product_name (商品名称): 商品的名称,VARCHAR(100) category (类别): 商品所属的类别,VARCHAR(50) sales_underline (销售)表: sale_id (销售 ID): 销售的唯一标识符,INT product_id (商品 ID): 商品的唯一标识符,用于关联商品表中的商品,INT sale_date (销售日期): 销售发生的日期,DATE quantity (销售数量): 销售的商品数量,INT reviews_underline (评价)表: review_id (评价 ID): 评价的唯一标识符,INT product_id (商品 ID): 商品的唯一标识符,用于关联商品表中的商品,INT rating (评分): 评价的分数,INT(1 - 5 分) comment (评价内容): 评价的具体文字内容,VARCHAR(500) 【要求】:根据上述表格,查询出所有产品中,2024年平均产品评分低于4分的所有产品ID,平均评分低于4分的所有产品名称,平均评分低于4分的所有产品的总销量。查询结果按照产品平均分升序排列,如果平均分一致按照产品ID升序排列。要求查询出来的表格的字段如下: product_id (商品 ID): 商品的唯一标识符,INT(平均评分低于4分的所有产品ID) product_name: 商品名称。(平均评分低于4分的所有产品名称) total_quantity: 总销售数量。(平均评分低于4分的所有产品的总销量) average_rating: 平均评分。(产品的平均评分)(round保留2位小数) 【示例】 products_underline (商品)表: sales_underline (销售)表: reviews_underline (评价)表: 【按要求查出来的表】 【解释】 根据上述示例中,产品ID是2的产品是运动鞋有2笔销售数据,分别是saleID 2和5,且销售时间都是在2024年,销售总数量是30+25 = 55;相关的销售评价数据有2条分别是reviewID 2和5,评价平均分是(3+2)2 = 2.50
示例1

输入

DROP TABLE IF EXISTS products_underline;
DROP TABLE IF EXISTS sales_underline;
DROP TABLE IF EXISTS reviews_underline;

-- 创建表
CREATE TABLE products_underline (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(100),
    category VARCHAR(50)
);

CREATE TABLE sales_underline (
    sale_id INT PRIMARY KEY,
    product_id INT,
    sale_date DATE,
    quantity INT
);

CREATE TABLE reviews_underline (
    review_id INT PRIMARY KEY,
    product_id INT,
    rating INT,
    comment VARCHAR(500)
);

-- 插入数据
INSERT INTO products_underline (product_id, product_name, category)
VALUES (1, '手机', '电子产品'),
       (2, '运动鞋', '运动用品'),
       (3, '笔记本电脑', '电子产品'),
       (4, '篮球', '运动用品');

INSERT INTO sales_underline (sale_id, product_id, sale_date, quantity)
VALUES (1, 1, '2024-03-01', 50),
       (2, 2, '2024-04-05', 30),
       (3, 1, '2024-04-10', 20),
       (4, 3, '2024-05-15', 40),
       (5, 2, '2024-06-20', 25),
       (6, 4, '2024-06-20', 25),
       (7, 4, '2024-07-20', 25);

INSERT INTO reviews_underline (review_id, product_id, rating, comment)
VALUES (1, 1, 4, '很好用'),
       (2, 2, 3, '还不错'),
       (3, 1, 3, '一般'),
       (4, 3, 5, '性能不错'),
       (5, 2, 2, '一般般'),
       (6, 4, 4, '一般般'),
       (7, 4, 3, '一般');
select * from products_underline;
select * from sales_underline;
select * from reviews_underline;

输出

product_id|product_name|total_quantity|average_rating
2|运动鞋|55|2.50
1|手机|70|3.50
4|篮球|50|3.50
加载中...