《mysql必知必会》读书实战笔记13-分组数据

第13章 分组数据

13.1数据分组

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

例如,统计每个供应商的产品数目?
统计只提供单项产品的供应商所提供的的产品?
提供10个以上产品的供应商是哪些?

13.2创建分组

Group by 列名:功能是,按列名排序并分组数据。

注意:group by子句的重要规定:

1、group by后可以包含多个列,形成分组嵌套,使数据分组更细。

2、多个列分组时,只显示最后一列的分组结果数据。

3、group by 包含的列必须是检索列或计算列,但不能是聚合计算列,不能使用别名。

4、除聚集计算列,select中每个列都要在group by后给出。

5、分组列中有NULL值,将作为一组返回,同一列中多行null值,分为一组。

6、group by 可在from后单独使用,如果有where,必须在where后,order by 前。

例:统计每个供应商的产品数:select vend_id,count(*) as num_prods from products group by vend_id;

with rollup关键字:分组结果汇总。

例:统计每个供应商的产品数并进行合计:select vend_id,count(*) from products group by vend_id with rollup;

13.3过滤分组

having 支持所有where操作符,语法相同,只是关键字有差别;
where过滤行,having过滤分组;
where与having同时使用时,where在分组前过滤行数据,having在分组后过滤分组数据。

例:统计有2个以上订单的客户:select cust_id,count(*) as orders from orders group by cust_id having count(*)>=2;

例:统计有两个以上产品,且产品价格在10元以上的供应商:select vend_id,prod_price,count(*) as prods from products where prod_price>=10 group by vend_id having count(*)>=2;

13.4分组和排序

group by和order by都有排序功能,但是有很大区别,
尽量让它们同时出现,是保证数据排序正确的唯一方法。

区别:

例:统计订单总价大于50的订单,并按总价排序:select order_num,sum(quantity*item_price) as order_sum from orderitems group by order_num having sum(quantity*item_price)>=50 order by order_sum;

13.5 select子句顺序


《mysql必知必会》是一本好书,是一本sql语言入门书,豆瓣评分很高。

作者是英国的Ben Forta,世界知名的技术作家,由人民邮电出版社发行,我觉得原作名: MySQL Crash Course,直译为:《MYSQL速成》更具畅销书潜质,只是比较俗吧,呵呵。

书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。

前三章是基础概念,讲了SQL和数据库的基本概念,Mysql数据库的概念和使用方法,第四章开始SQL实操练习,这里是本书的一些实操练习笔记,有兴趣的话可以按这个练习几遍,相信对新手会很有帮助,让你不经意间功力大增。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 3,474评论 0 0
  • 1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...
    Cherryjs阅读 4,136评论 0 0
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 4,994评论 0 7
  • 关系型数据库和SQL SQL语言的三个部分DML:Data Manipulation Language,数据操纵语...
    Awey阅读 5,963评论 0 13
  • 中秋在普陀山上。阴天,没有月亮,略有遗憾!随团饭后,我和大刘去附近转转,离住处200米左右的距离,有一所开放的...
    陌上花开qzy阅读 1,781评论 0 1