排序与分组函数(未补充)

Posted zhangtongjian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序与分组函数(未补充)相关的知识,希望对你有一定的参考价值。

排序

注意: 默认是升序。asc表示升序,desc表示降序。
select 列名, from 表名 order by 列名; //默认升序
select 列名, from 表名 order by 列名 asc; // 指定升序
select 列名, from 表名 order by 列名 desc; // 指定降序
按照工资的降序排列,当工资相同的时候在按照名字的升序排列。
select ename,sal from emp order by sal desc,ename asc;
意思是sal相等的情况下在执行后面的语句,不相等则不执行
注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。

!执行顺序

select 字段 from 表名 where 条件 order by ...

? 3 1 2 4

分组函数

  1. count 计数
  2. sum 求和
  3. avg 平均值
  4. max 最大值
  5. min 最小值
    记住: 所有的分组函数都是对"某一组"数据进行操作的。
    select 分组函数(字段 ) from 表名 ;
    找出工资总和: select sum(sal) from emp;
    找出最高工资: select max(sal) from emp;
    找出最低工资: select min(sal) from emp;
    找出评价工资: select avg(sal) from emp;
    找出总人数: select count(*) from emp;

分组函数一共5个。
分组函数还有另一个名字: 多行处理函数。
多行处理函数的特点:输入多行,最终输出的结果是1行。
!!!!!!!!!!!!分组函数自动忽略null。
select ename,(sal+comm)*12 as yearsal from emp;

重点: 所有数据库都是这样规定的,只要有null参与的运算结果一定是null。
那么怎样处理空值呢?
ifnull(可能为NULL的数据,被当做什么处理): 属于单行处理函数。
select 字段,ifnull(字段,0) from emp;






















以上是关于排序与分组函数(未补充)的主要内容,如果未能解决你的问题,请参考以下文章

按 Sql Server 中的一列分组并按未包含在聚合函数或 GROUP BY 子句中的另一列排序

数据库查询

mysql5.7 mysql8窗口函数分组排序并在组内编号

聚合查询 分组 F与Q查询

SQL语句的补充

分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)(转)