第十三章-分组数据

13.1数据分组

分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。

13.2创建分组

输入 SELECT vend_id,COUNT(*) AS num_prods FROM proucts GROUP BY vend_id;

分析 上面的SELECT语句指定了两个列,vend_id包含产品供应商的ID,num_prods为计算字段。GROUP BY 子句指示MySQL按vendid排序并分组数据。

使用GROUP BY子句的一些规则:

  • GROUP BY子句可以包含任意数目的列。GROUP BY X, Y意思是将所有具有相同X字段值和Y字段值的记录放到一个分组里,即现以X分组然后以Y分组。
  • GROUP BY 子句中列出的每个列都必须是检索列或有效的表达式 (但不能是聚集函数)。如果在 SELECT 中使用表达式, 则必须在GROUP BY子句中指定相同的表达式。不能使用别名。
  • 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。
  • 如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。
  • GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。

使用WITH ROLLUP关键字可以汇总分组的所有值,例如,下述语句得到所有分组count(*)的和14:

select vend_id, count(*) as num_prods from products group by vend_id with rollup;

13.3 过滤分组

注意:HAVING非常类似于WHERE,唯一的差别是 WHERE过滤行,而HAVING过滤分组。HAVING支持所有WHERE操作符。

输入:

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

分析 HAVING子句,他过滤 count(*)>=2的那些分组

另一种理解方法:HAVING用于分组后过滤,WHERE用于分组前过滤

13.4 分组和排序

注意:使用GROUP BY子句时,应该也给出ORDER BY子句,来确保数据正确排序,而不能仅依赖GROUP BY自身的默认排序。

13.5SELECT子句顺序

13.6小结

本章讲授了如何使用GROUP BY子句对数据组进行这些汇总计算,返回每个组的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络第八版谢希仁课后答案第四包含了很多问题,以下是其中几个问题的答案: 1. 已知一个地址为167.199.170.82的主机,求该主机所在网络的网络掩码、网络前缀长度和网络后缀长度。 答案:该主机所在网络的网络掩码为255.255.255.192,网络前缀长度为26位,网络后缀长度为6位。 2. 计算机网络向用户可以提供哪些服务? 答案:计算机网络向用户可以提供文件传输、电子邮件、远程登录、万维网等服务。 3. 简述分组交换的特点。 答案:分组交换是一种将数据分成若干个数据包进行传输的通信方式。其特点是传输效率高、灵活性强、资源利用率高、传输质量不稳定。 4. 电路交换、报文交换和分组交换的主要优缺点比较。 答案:电路交换的优点是传输质量稳定,缺点是资源利用率低;报文交换的优点是传输效率高,缺点是传输质量不稳定;分组交换的优点是传输效率高、灵活性强、资源利用率高,缺点是传输质量不稳定。 5. 为什么说因特网是自印刷术以来人类通信方面最大的变革? 答案:因特网的出现使得人们可以在全球范围内进行信息交流和共享,极大地改变了人们的生活和工作方式,因此被称为自印刷术以来人类通信方面最大的变革。 6. 网络145.13.0.0/16划分为四个子网N1、N2、N3、N4,给出路由器R的路由表。 答案:路由器R的路由表如下: 目的网络 下一跳 145.13.1.0 m0 145.13.2.0 m1 145.13.3.0 m2 145.13.4.0 m3 其他网络 m4 --相关问题--: 1. 什么是网络掩码? 2. 分组交换和电路交换的区别是什么? 3. 什么是路由表?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值