首页 > 试题广场 >

电商平台想要查询出每个商品在 2024 年上半年(1 月至

[编程题]电商平台想要查询出每个商品在 2024 年上半年(1 月至
  • 热度指数:250 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
【背景】:电商平台想要查询出每个商品在 2024 年上半年(1 月至 6 月)的总销售额。
【原始表】:
products_underline (商品)表:
  • product_id (商品 ID): 商品的唯一标识符,INT
  • product_name (商品名称): 商品的名称,VARCHAR(50)
  • price (价格): 商品的单价,DECIMAL(10, 2)
sales_underline (销售)表:
  • sale_id (销售 ID): 销售的唯一标识符,INT
  • product_id (商品 ID): 商品的唯一标识符,用于关联商品表中的商品,INT
  • sale_month (销售月份): 销售发生的月份,VARCHAR(7)(格式:'YYYY-MM')
  • quantity (销售数量): 销售的商品数量,INT
【要求】:根据上述表格,查询出每个商品在 2024 年上半年(1 月至 6 月)的总销售额。查询结果按照商品 ID 升序排列。要求查询出来的表格的字段如下:
  • product_id: 商品的唯一标识符。
  • product_name: 商品的名称。
  • total_sales: 2024 年上半年的总销售额。(round保留2位小数)
【示例】:
products_underline (商品)表:

sales_underline (销售)表:
【按要求查询出来的表】
【解释】
上述表中,2024年1-6月份和产品ID是1的产品有关的销售数据有3笔,总销量是370,单价是10.99,总销售额total_sales = 370*10.99 round保留2位小数等于4066.30
示例1

输入

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

-- 创建商品表
CREATE TABLE products_underline (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(50),
    price DECIMAL(10, 2)
);

-- 创建销售表
CREATE TABLE sales_underline (
    sale_id INT PRIMARY KEY,
    product_id INT,
    sale_month VARCHAR(7),
    quantity INT
);

-- 插入测试数据
INSERT INTO products_underline (product_id, product_name, price) VALUES
(1, 'Product A', 10.99),
(2, 'Product B', 20.50),
(3, 'Product C', 15.75);

INSERT INTO sales_underline (sale_id, product_id, sale_month, quantity) VALUES
(1, 1, '2024-01', 100),
(2, 1, '2024-02', 150),
(3, 1, '2024-03', 120),
(4, 2, '2024-01', 80),
(5, 2, '2024-02', 90),
(6, 2, '2024-03', 110),
(7, 3, '2024-01', 50),
(8, 3, '2024-02', 70),
(9, 3, '2024-03', 60);
select * from products_underline;
select * from sales_underline;

输出

product_id|product_name|total_sales
1|Product A|4066.30
2|Product B|5740.00
3|Product C|2835.00
select p.product_id,
       p.product_name,
       round(sum(p.price*s.quantity),2) as total_sales

from sales_underline as s
left join products_underline as p
on s.product_id=p.product_id

where s.sale_month between '2024-01'and '2024-06'

group by p.product_id, p.product_name
order by p.product_id

发表于 2025-06-25 23:37:24 回复(0)