题解 | #返回订单数量总和不小于100的所有订单的订单号#

返回订单数量总和不小于100的所有订单的订单号

https://www.nowcoder.com/practice/ff77e82b59544a15987324e19488aafd

select order_num from OrderItems   group by order_num  having sum(quantity) >=100 order by order_num

需要注意的是where 和 having 的使用场景:

where 是针对字段进行的筛选

having 是针对分组的筛选

具体的对比,from gpt

SQL 中having和where的主要区别有:

  1. 执行时间不同

where在分组group by之前进行过滤,having在group by之后进行过滤。

  1. 作用对象不同

where对原始表进行筛选,影响从表中选取数据的行。

having对group by的结果进行筛选,影响最终结果集的行。

  1. 使用条件不同

where后面可以使用表中的所有列,常用于不聚合的字段。

having只可使用group by生成的组字段或聚合函数,常用于聚合字段。

  1. 适用场景不同
  • 如果需要在分组统计之前过滤记录,则需要where。
  • 如果需要在分组统计之后基于聚合函数过滤,则需要having。
  • 如果同时需要两者,则where写在前,having写在后。

一个简单的例子:

sqlCopy codeSELECT class, COUNT(student) 
FROM table
WHERE score > 80 
GROUP BY class
HAVING COUNT(student) > 5

这可以查找总分大于80的学生人数超过5人的班级。

总之,where和having都用于过滤,但适用范围和使用时间不同。where先行过滤行,having后置过滤分组。

全部评论

相关推荐

字节一直是我的白月光,考虑到转正还是拒了日常实习。
从今天开始狠狠卷JV...:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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