题解 | #返回订单数量总和不小于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后置过滤分组。

全部评论

相关推荐

运营你豪哥:简历改改吧-非本、求职意向技术岗、无实习经历、内容空洞 如果简历不爆改的话,应该是会持续崩溃了 1.把你教育经历放最下面去 2.蓝底照片很奇怪哈,感觉还在高中时代,建议白底重新拍一下 3.校园经历没啥必要,收集和反馈同学们对产品的意见,解决学生和老师之间的沟通,企业招聘不看这些哈 好好思考一下简历的设计和你要表达的重点,再去投简历
点赞 评论 收藏
分享
有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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