美文网首页
《mysql必知必会》读书实战笔记12-汇总数据

《mysql必知必会》读书实战笔记12-汇总数据

作者: thinkact | 来源:发表于2017-03-14 10:31 被阅读21次

    第12章 汇总数据

    12.1聚集函数(或称聚合函数)

    聚集函数:用于计算、统计、汇总数据,返回单个值的函数。
    聚集函数通常会忽略值为null的行。

    常用聚集函数:

    12.1.1平均函数:AVG(列名)

    必须给出一个列名作为参数,如果要求多列的平均值,需要多次使用AVG()函数;
    AVG()函数会忽略值为null的行。

    求所有产品的平均单价:select avg(prod_price) as avg_price from products;

    求供应商为1003的所有产品平均单价:select avg(prod_price) as avg_price from products where vend_id=1003;

    12.1.2计数函数COUNT()

    count(*)   #对所有行计数,包括有空值的行。

    例:统计客户表中所有客户数量:select count(*) as num_cust from customers;

    count(列名)  #对选定列中有值的行计数,忽略值为null的行。

    例:统计所有带email的客户数量:select count(cust_email) as num_cust from customers;

    12.1.3最大值、最小值函数MAX() 、MIN()

    用于比较数值、日期、文本的最大、最小值,

    用于文本时,如果文本按列排序过,MIN()会取第一行,MAX()会取最后一行。

    例:找出产品表中最贵的产品:select max(prod_price) as price_max from products;

    找出产品表中最便宜的产品:select min(prod_price) as price_min from products;

    12.1.4求和函数sum()

    例:求订单号20005中所有产品数量之和:select sum(quantity) as itmes_ordered from orderitems where order_num=20005;

    例:求订单号20005中所有产品总价:select sum(quantity*item_price) from orderitems where order_num=20005;

    12.2聚集不相同的值

    distinct 列名  #去除重复值,后面必须跟列名。

    例:求供应商为1003的所有不同产品平均价格:select avg(distinct prod_price) as price_avg from products where vend_id=1003;

    12.3组合聚集函数

    一个sql语句可以使用多个聚集函数。

    例:求产品表中产品总数、最高价、最低价、平均价:
    select count(*) as num_items,max(prod_price) as price_max,min(prod_price) as price_min,avg(prod_price) as price_avg from products;

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

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

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

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

    相关文章

      网友评论

          本文标题:《mysql必知必会》读书实战笔记12-汇总数据

          本文链接:https://www.haomeiwen.com/subject/gdjcnttx.html