排序与聚合函数

作者: 程序员必修课 | 来源:发表于2018-01-18 16:11 被阅读0次

排序

ORDER BY

SELECT <*, column [alias], ...>
FROM table [WHERE conditions(s)]
[ORDER BY column [ASC|DESC]];
必须出现在SELECT中的最后一个子句

ASC、DESC

ASC用来指定升序排序(默认选项),DESC用来指定降序排序。
NULL值视作最大。
不写ASC或DESC ,默认是ASC,升序排列。

多个列排序

当以多列作为排序标准时,首先按照第一列进行排序,如果第一列数据相同,再以第二列排序,以此类推。多列排序时,不管正序还是倒序,每个列需要单独设置排序方式

聚合函数

MAX、MIN

用来取得列或表达式的最大、最小值。
可以用来统计任何数据类型,包括数字、字符和日期;

AVG、SUM

用来统计列或表达式的平均值与和值。只能操作数字类型。忽略NULL值

在SELECT中出现了聚合函数以后,不可以出现其他字段,如果想出现其他字段,则该字段必须出现在GROUP BY语句中

COUNT

用来计算表中的记录条数;
忽略NULL值;

通过聚合函数统计某一字段值的时候,如果不希望忽略null,则使用NVL(IFNULL)语句

GROUP BY

将某些字段相同的划分为一组。
SELECT <*, column [alias],...">
FROM table [WHERE condition(s)]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column [ASC | DESC]];

GROUP BY应该出现在WHERE后面,ORDER BY前面。

WHERE中不允许使用分组函数

HAVING

HAVING子句用来对分组统计后的结果再次进行过滤。比如按部门分组后,得到每个部门的最高薪水,可以继续限制输出结果。
必须跟在GROUP BY后面,不能单独存在。

WHERE是在第一次查询时用来过滤的,WHERE不能用组函数,HAVING可以

査询语句的执行顺序

  1. from子句:执行顺序为从后往前、从右到左;所以数据量较少的表尽量放在后面
  2. where子句:执行顺序为自下而上、从右到左;将能过滤掉最大数量记录的条件,写在Where子句的最右
  3. group by:执行顺序从左往右分组;最好在GROUP BY前使用WHERE将不需要的记录在GROUP BY之前过滤掉。列内容都不重复用GROUP by意义就不大了。
  4. having子句:消耗资源,尽置避免使用,HAVING会搜索出所有记录之后才对结果集进行过滤,需要排序等操作
  5. select子句:少用★号,尽量取字段名称;ORACLE在解析的过程中,通过査询数据字典将*号依次转换成所有的列名,消耗时间
  6. order by子句:执行顺序为从左到右排序,消耗资源

相关文章

  • 开窗函数

    over在聚合函数中的使用:一般格式:聚合函数名(列) over(选项)over必须与聚合函数或排序函数一起使用...

  • MICK-SQL基础教程(第二版)第三章 聚合与排序

    第三章 聚合与排序 对表进行聚合查询 聚合函数 所谓聚合,就是将多行汇总为一行。实际上,所有的聚合函数都是这样,输...

  • DQL查询以及DCL(Data control Language

    排序 排序的时候使用order by 升序:asc 降序:desc 聚合函数 聚合函数作用count统计个数max...

  • 排序与聚合函数

    排序 ORDER BY SELECT <*, column [alias], ...>FROM table [WH...

  • 【SQL.基础构建-第三节(3/4)】

    -- Tips:聚合和排序 -- 一、对表进行聚合查询 --1.聚合函数 --(1)5 个常用函数: --①CO...

  • 数据库查询语句

    条件与逻辑查询 模糊查询 范围查询 排序 聚合函数 分组 连接查询 分页 子查询

  • 《SQL基础教程》学习笔记Ch3

    3聚合与排序 3-1对表进行聚合查询 聚合函数 COUNT:计算表中的记录数(行数)SUM:计算表中数值列中数据的...

  • 2020-08-03(约束)

    1,dql:查询语句; 排序查询,聚合函数,分组查询,分页查询; a,排序; order by ,asc...

  • 聚合函数和排序

    count 函数 语法: sum函数 对查询结果排序 使用order by 子句排序查询结果 order by指排...

  • mysql子查询

    聚合函数 聚合函数对一组值执行计算,并返回单个值。 除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与...

网友评论

    本文标题:排序与聚合函数

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