聚合函数是用来求和,平均值,最大最小值一类的函数。

常用的有COUNT、SUM、MAX、MIN、AVG。

count()

参数为列名,也可以使用*,表示全部列。

默认*会统计所有行的数据,如果想过滤掉NULL行,要指定具体列名。

过滤空行:

mysql> select * from employees where 'to_date' is null;
Empty set (0.00 sec)

注:

1.聚合函数在进行计算之前,会自动将NULL的行排除,但是count(*)是个例外。

2.适用范围,MAX/MIN适合所有类型的列,而SUM/AVG只适合数值类型的列。

3.想要计算值的类型时,可以在COUNT函数中使用DISTINCT。

对表进行分组

注意点:

1.聚合函数和GROUP BY子句只能在SELECT子句中使用

2.GROUP BY 子句中不能使用SELECT子句中列的别名

3.GROUP BY 子句中的聚合结果是无序的

4.WHERE 子句中不能使用聚合函数

5.子句的书写顺序,SELECT-->FROM-->WHERE-->GROUP BY

将表分组之后再进行聚合

SELECT name,count(*) FROM people GROUP BY name;

聚合键中包含NULL时,会以空行的形式表现出来。

GROUP BY和WHERE并用时的执行顺序:FROM-->WHERE-->GROUP BY-->SELECT

注意

1.SELECT子句中只能存在下面三种元素:

常数
聚合函数
聚合键,即GROUP BY子句中的列

2.使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名。

为聚合结果指定结果

HAVING子句用来指定分组的条件,需要写在GROUP BY子句之后。

SQL基础之聚合与排序的更多相关文章

  1. sql基础知识:分页+排序

    Oracle的分页还真是挺恶心地,不像mysql直接Limit就搞定 select name from student limit 0,20; Oracle需要借助rownum实现: select * ...

  2. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  3. SQL基础教程(第2版)第3章 聚合与排序:3-2 对表进行分组

    第3章 聚合与排序:3-2 对表进行分组 ● 使用GROUP BY子句可以像切蛋糕那样将表分割.通过使用聚合函数和GROUP BY子句,可以根据“商品种类”或者“登记日期”等将表分割后再进行汇总.● ...

  4. SQL基础教程(第2版)第3章 聚合与排序:3-4 对查询结果进行排序

    第3章 聚合与排序:3-4 对查询结果进行排序 ● 使用ORDER BY子句对查询结果进行排序.● 在ORDER BY子句中列名的后面使用关键字ASC可以(通常省略默认)进行升序排序,使用DESC关键 ...

  5. SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

    第3章 聚合与排序:3-3 为聚合结果指定条件 ● 使用COUNT函数等聚合函数对表中数据进行汇总操作时,为其指定条件的不是WHERE子句,而是HAVING子句.● 聚合函数可以在SELECT子句. ...

  6. [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY

    [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY ORDER BY SELECT <列名1>,<列名2>,<列名2>... FROM ORDER B ...

  7. [SQL基础教程] 3-1 对表进行聚合查询

    [SQL基础教程] 3-1 对表进行聚合查询 聚合函数 用于合计的函数称为聚合函数或者集合函数 COUNT SUM AVG MAX MIN SELECT COUNT(*) FROM table; SE ...

  8. 3 SQL 聚合与排序

    3 聚合与排序 3-1 对表进行聚合查询 聚合函数 通过SQL对数据进行 操作或计算时需要使用函数. 计算表中全部数据行数时,可以使用COUNT函数. COUNT : 计算表中的记录数(行数). SU ...

  9. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

随机推荐

  1. Eclipse使用maven创建struct2项目及遇到的各种坑

    参考创建教程:http://www.jb51.net/article/45138.htm   坑一: Eclipse创建maven项目报错:Could not resolve archetype or ...

  2. RRGGBBAA或者RRGGBB转换成rgba()

    //十六进制颜色值的正则表达式 var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; /*16进制颜色转为RGB格式*/ var colorRgb = fun ...

  3. 在 Android Studio 2.2 中愉快地使用 C/C++

    转载请注明出处:http://blog.csdn.net/wl9739/article/details/52607010 注:官网上面的技术文章也在不断地汉化中,只是进度有点慢.在我翻译本篇文章的时候 ...

  4. [Todo] C++学习资料进度

    <C++必知必会> /Users/baidu/Documents/Data/Interview/C++

  5. python matplotlib.pyplot学习记录

    matplotlib是python中很强大的绘图工具,在机器学习中经常用到 首先是导入 import matplotlib.pyplot as plt plt中有很多方法,记录下常用的方法 plt.p ...

  6. 利用squid配置代理服务器-Fedora 19

    我的系统:  x86_64位Feodra 18 # yum install squid 不需要用户名密码认证的配置方式 edit /etc/squid/squid.conf # # Recommend ...

  7. 偶遇RecyclerView内部Bug

    写在前面           最近忙着赶项目进度,都不知道这次博客写点啥好了,前两天碰巧遇到一个奇怪的bug,项目中未发现与异常相关的类,于是去百度.谷歌搜索,发现这是一个早就可能被写烂吐槽的Recy ...

  8. 关于jquery的on,你怎么绑定就怎么解除

    打开jquery3.0一看,竟然把一大半的时间绑定的东西都废弃了 基本上绑定时间可以统一成了on,不管你是不是动态进来的dom节点 live我们知道1.7的时候就已经废弃了,还在觉得live很好用的同 ...

  9. list中依据map&lt;String,Object&gt;的某个值排序

    private void sort(List<Map<String, Object>> list) { Collections.sort(list, new Comparato ...

  10. 算法笔记_105:蓝桥杯练习 算法提高 上帝造题五分钟(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 第一分钟,上帝说:要有题.于是就有了L,Y,M,C 第二分钟,LYC说:要有向量.于是就有了长度为n写满随机整数的向量 第三分钟,YUHC ...