排序与分组函数(未补充)
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
分组函数
- count 计数
- sum 求和
- avg 平均值
- max 最大值
- 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 子句中的另一列排序
分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)(转)