题解 | SQL36#从 Products 表中检索所有的产品名称以及对应的销售总数#

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

http://www.nowcoder.com/practice/2b289b78de1546f38fd24e17e56f1bec

分析

思路:作为计算字段使用子查询

  • 分组计算销售总数。select sum(quantity) from OrderItems group by prod_id
  • 在Products表中搜索。where OrderItems.prod_id=Products.prod_id

代码

select prod_name,
(select sum(quantity)
from OrderItems
where OrderItems.prod_id=Products.prod_id
group by prod_id
 ) as quant_sold
from Products
全部评论
group by prod_id可以去掉,在关联子查询中,先执行外查询查询得到Products.prod_id,再将当前prod_id = a0001带入子查询,where OrderItems.prod_id=Products.prod_id相当于where OrderItems.prod_id=‘a0001’,已经限定了内部查询只有一种商品id
22 回复 分享
发布于 2023-04-02 16:04 浙江
子查询中已经使用where筛选了prod_id为对应值的记录,那就不需要再使用group by分组了吧?sum()函数在不用分组函数的情况下也能使用哦,就是把当前临时结果集所有记录看作一个组
3 回复 分享
发布于 2023-12-20 22:12 江苏
初学子查询,想问个问题,为什么from Products前面不能写 group by prod_name ? 题目的意思是每个产品的销售总数,按照产品名称分组,这个思路有什么不对的地方吗?
3 回复 分享
发布于 2022-04-08 20:41
group by 原先放在from Products后面,无法执行,移动到括号内却可以,为什么呢,初学者求解答
点赞 回复 分享
发布于 2023-02-09 16:23 浙江
请问~构造了新字段quant_sold,为什么后面还可以跟from Products(意思是从Products表中查询吗?可是该表中并没有quant_sold这个字段啊),这是因为什么呢?求解答
点赞 回复 分享
发布于 2023-02-07 09:39 辽宁

相关推荐

评论
39
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务