首页 > 试题广场 >

从 Products 表中检索所有的产品名称以及对应的销售总

[编程题]从 Products 表中检索所有的产品名称以及对应的销售总
  • 热度指数:107780 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
 Products 表中检索所有的产品名称:prod_name、产品id:prod_id
prod_id prod_name
a0001 egg
a0002
sockets
a0013
coffee
a0003
cola
OrderItems代表订单商品表,订单产品:prod_id、售出数量:quantity
prod_id quantity
a0001 105
a0002
1100
a0002 200
a0013
1121
a0003
10
a0003
19
a0003
5
【问题】
编写 SQL 语句,从 Products 表中检索所有的产品名称(prod_name),以及名为 quant_sold 的计算列,其中包含所售产品的总数(在 OrderItems 表上使用子查询和 SUM(quantity)检索)。

【示例结果】返回产品名称prod_name和产品售出数量总和
prod_name quant_sold
egg 105
sockets 1300
coffee
1121
cola 34
【示例解析】prod_name是cola的prod_id为a0003,quantity总量为34,返回结果无需排序。
示例1

输入

DROP TABLE IF EXISTS `Products`;
CREATE TABLE IF NOT EXISTS `Products` (
`prod_id` VARCHAR(255) NOT NULL COMMENT '产品 ID',
`prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称'
);
INSERT INTO `Products` VALUES ('a0001','egg'),
('a0002','sockets'),
('a0013','coffee'),
('a0003','cola');

DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
	prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
	quantity INT(16) NOT NULL COMMENT '商品数量'
);
INSERT `OrderItems` VALUES ('a0001',105),('a0002',1100),('a0002',200),('a0013',1121),('a0003',10),('a0003',19),('a0003',5);

输出

egg|105.000
sockets|1300.000
coffee|1121.000
cola|34.000
头像 风飞飞飞
发表于 2022-03-05 10:31:03
分析 思路:作为计算字段使用子查询 分组计算销售总数。select sum(quantity) from OrderItems group by prod_id 在Products表中搜索。where OrderItems.prod_id=Products.prod_id 代码 select p 展开全文
头像 阿莉勒丝黛拉
发表于 2022-03-07 22:04:15
SELECT      p.prod_name,     tb.quantity FROM (     SELECT    &nb 展开全文
头像 牛客871063558号
发表于 2022-07-14 16:30:33
可以按照以下两个步骤完成: (1)从OrderItems表中根据订单产品编号prod_id分组,统计每个产品的售出数量 (2)对于检索的结果中每个订单表号在产品表Products中根据订单编号字段order_num找到对应的产品名prod_name 一、为了方便理解加了prod_i 展开全文
头像 sqlsquare
发表于 2022-03-02 17:17:00
select     prod_name,sum(quantity) as     quant_sold from Products join OrderItems on Products.prod_id=OrderIt 展开全文
头像 NiimiSora
发表于 2022-10-19 19:57:17
一种使用left join的写法 select prod_name, sum(quantity) quant_sold from Products left join OrderItems using(prod_id) group by prod_name;
头像 Tencent飞
发表于 2022-03-11 12:43:36
SELECT p.prod_name, o.quant_sold FROM ( SELECT a.prod_id, SUM(a.quantity) as quant_sold from OrderItems a group by a.prod 展开全文
头像 张彧0229
发表于 2022-03-10 10:10:59
select p.prod_name,sum(o.quantity) quant_sold from Products p,OrderItems o where p.prod_id = o.prod_id group by prod_name 将两表进行关联,从关联表中进行查询,最后再分组,依据产品 展开全文
头像 Bigder
发表于 2023-05-14 18:54:53
select prod_name, SUM(quantity) as quant_sold from Products t, OrderItems t1 where t.prod_id = t1.prod_id group by prod_name # 展开全文
头像 胜天半子贺帅帅
发表于 2024-03-11 17:40:19
select prod_name,sum(quantity) quant_sold from Products A,OrderItems B where A.prod_id = B.prod_id group by prod_name
头像 幸运皆降于我
发表于 2023-06-06 10:42:34
select prod_name, ( select sum(quantity) from OrderItems o where o.prod_id=p.prod_id ) as quant_sold from Products p; 子查询顺序是先内再外的话,为什么这里的括 展开全文