mysql必知必会(八):过滤分组

1|0分组 GROUP BY


GROUP BY位于WHERE之后,ORDER BY 之前
在产品表中根据供应商ID(vend_id)进行分组

SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id;

2|0过滤分组


1.WHERE过滤指定的是行而不是分组,要对分组进行过滤可以使用HAVING
2.WHERE在分组前进行过滤,HAVING在分组后进行过滤,WHERE排除的行不包括在分组中
在订单表中根据cust_id进行分组,然后过滤出2个以上的订单

SELECT cust_id, COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >= 2;

列出具有2个(含)以上、价格为10(含)以上的产品的供应商

SELECT vend_id, COUNT(*) AS num_prods FROM products WHERE prod_price>=10 GROUP BY vend_id HAVING COUNT(*)>=2;

3|0分组排序


查询出总订单价格大于等于50的订单号和总订单价格,并按照总订单价格升序排列

SELECT order_num, SUM(quantity*item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING ordertotal>=50 ORDER BY ordertotal;


__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/16468266.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(199)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-07-11 python中的set类型
2018-07-11 python中配置文件的使用
2018-07-11 python中的mysql操作
2017-07-11 《Advanced Bash-scripting Guide》学习(十八):[[ ]]与[ ]的一些特殊情况
点击右上角即可分享
微信分享提示